@@ -12,23 +12,22 @@ import * as semver from 'semver';
12
12
import { ReleaseType } from 'semver' ;
13
13
import { packages } from '../lib/packages' ;
14
14
15
- const { hashes, versions } = require ( '../versions.json' ) ;
15
+
16
+ const { packages : monorepo } = require ( '../.monorepo.json' ) ;
16
17
17
18
18
19
function _showVersions ( logger : Logger ) {
19
- for ( const pkg of Object . keys ( versions ) ) {
20
- if ( ! ( pkg in packages ) ) {
21
- logger . fatal ( `"${ pkg } " not an official package...` ) ;
22
- }
20
+ for ( const pkgName of Object . keys ( packages ) ) {
21
+ const pkg = packages [ pkgName ] ;
23
22
24
- const version = versions [ pkg ] || '???' ;
25
- const hash = packages [ pkg ] . hash ;
26
- const diff = hashes [ pkg ] !== hash ? '!' : '' ;
23
+ const version = pkg . version || '???' ;
24
+ const hash = pkg . hash ;
25
+ const diff = pkg . dirty ? '!' : '' ;
27
26
28
- const pad1 = ' ' . slice ( pkg . length ) ;
27
+ const pad1 = ' ' . slice ( pkgName . length ) ;
29
28
const pad2 = ' ' . slice ( version . length ) ;
30
- const message = `${ pkg } ${ pad1 } v${ version } ${ pad2 } ${ hash } ${ diff } ` ;
31
- if ( packages [ pkg ] . private ) {
29
+ const message = `${ pkgName } ${ pad1 } v${ version } ${ pad2 } ${ hash } ${ diff } ` ;
30
+ if ( pkg . private ) {
32
31
logger . debug ( message ) ;
33
32
} else {
34
33
logger . info ( message ) ;
@@ -39,24 +38,21 @@ function _showVersions(logger: Logger) {
39
38
40
39
function _upgrade ( release : string , logger : Logger ) {
41
40
for ( const pkg of Object . keys ( packages ) ) {
42
- if ( ! ( pkg in versions ) ) {
43
- versions [ pkg ] = '0.0.0' ;
44
- }
45
-
46
41
const hash = packages [ pkg ] . hash ;
47
- const version = versions [ pkg ] || '0.0.0' ;
42
+ const version = packages [ pkg ] . version ;
43
+ const dirty = packages [ pkg ] . dirty ;
48
44
let newVersion : string | null = version ;
49
45
50
46
if ( release == 'minor-beta' ) {
51
- if ( hash !== hashes [ pkg ] ) {
47
+ if ( dirty ) {
52
48
if ( version . match ( / - b e t a \. \d + $ / ) ) {
53
49
newVersion = semver . inc ( version , 'prerelease' ) ;
54
50
} else {
55
51
newVersion = semver . inc ( version , 'minor' ) + '-beta.0' ;
56
52
}
57
53
}
58
54
} else if ( release == 'minor-rc' ) {
59
- if ( hash !== hashes [ pkg ] ) {
55
+ if ( dirty ) {
60
56
if ( version . match ( / - r c / ) ) {
61
57
newVersion = semver . inc ( version , 'prerelease' ) ;
62
58
} else if ( version . match ( / - b e t a \. \d + $ / ) ) {
@@ -66,15 +62,15 @@ function _upgrade(release: string, logger: Logger) {
66
62
}
67
63
}
68
64
} else if ( release == 'major-beta' ) {
69
- if ( hash !== hashes [ pkg ] ) {
65
+ if ( dirty ) {
70
66
if ( version . match ( / - b e t a \. \d + $ / ) ) {
71
67
newVersion = semver . inc ( version , 'prerelease' ) ;
72
68
} else {
73
69
newVersion = semver . inc ( version , 'major' ) + '-beta.0' ;
74
70
}
75
71
}
76
72
} else if ( release == 'major-rc' ) {
77
- if ( hash !== hashes [ pkg ] ) {
73
+ if ( dirty ) {
78
74
if ( version . match ( / - r c / ) ) {
79
75
newVersion = semver . inc ( version , 'prerelease' ) ;
80
76
} else if ( version . match ( / - b e t a \. \d + $ / ) ) {
@@ -83,15 +79,15 @@ function _upgrade(release: string, logger: Logger) {
83
79
newVersion = semver . inc ( version , 'major' ) + '-rc.0' ;
84
80
}
85
81
}
86
- } else if ( hash !== hashes [ pkg ] || release !== 'patch' ) {
82
+ } else if ( dirty || release !== 'patch' ) {
87
83
newVersion = semver . inc ( version , release as ReleaseType ) ;
88
84
}
89
85
90
86
let message = '' ;
91
87
if ( newVersion && version !== newVersion ) {
92
88
message = `${ pkg } changed... updating v${ version } => v${ newVersion } ` ;
93
- versions [ pkg ] = newVersion ;
94
- hashes [ pkg ] = hash ;
89
+ monorepo [ pkg ] . version = newVersion ;
90
+ monorepo [ pkg ] . hash = hash ;
95
91
} else {
96
92
message = `${ pkg } SAME: v${ version } ` ;
97
93
}
@@ -123,8 +119,8 @@ export default function(args: { _: string[], 'dry-run'?: boolean }, logger: Logg
123
119
case 'patch' :
124
120
_upgrade ( maybeRelease , logger ) ;
125
121
if ( ! dryRun ) {
126
- fs . writeFileSync ( path . join ( __dirname , '../versions .json' ) ,
127
- JSON . stringify ( { versions , hashes } , null , 2 ) + '\n' ) ;
122
+ fs . writeFileSync ( path . join ( __dirname , '../.monorepo .json' ) ,
123
+ JSON . stringify ( { packages : monorepo } , null , 2 ) + '\n' ) ;
128
124
}
129
125
process . exit ( 0 ) ;
130
126
break ;
0 commit comments