@@ -203,6 +203,79 @@ async function _bazel(logger: logging.Logger) {
203
203
// _exec('bazel', ['build', '//packages/...'], {}, logger);
204
204
}
205
205
206
+ async function _setVersions (
207
+ sortedPackages : string [ ] ,
208
+ argv : { local ?: boolean , snapshot ?: boolean } ,
209
+ logger : logging . Logger ,
210
+ ) {
211
+ for ( const packageName of sortedPackages ) {
212
+ logger . info ( packageName ) ;
213
+ const pkg = packages [ packageName ] ;
214
+ const packageJsonPath = path . join ( pkg . dist , 'package.json' ) ;
215
+ const packageJson = pkg . packageJson ;
216
+ const version = pkg . version ;
217
+
218
+ if ( version ) {
219
+ packageJson [ 'version' ] = version ;
220
+ } else {
221
+ logger . error ( 'No version found... Only updating dependencies.' ) ;
222
+ }
223
+
224
+ for ( const depName of Object . keys ( packages ) ) {
225
+ const v = packages [ depName ] . version ;
226
+ for ( const depKey of [ 'dependencies' , 'peerDependencies' , 'devDependencies' ] ) {
227
+ const obj = packageJson [ depKey ] as JsonObject | null ;
228
+ if ( obj && obj [ depName ] ) {
229
+ if ( argv . local ) {
230
+ obj [ depName ] = packages [ depName ] . tar ;
231
+ } else if ( argv . snapshot ) {
232
+ const pkg = packages [ depName ] ;
233
+ if ( ! pkg . snapshotRepo ) {
234
+ logger . error (
235
+ `Package ${ JSON . stringify ( depName ) } is not published as a snapshot. `
236
+ + `Fixing to current version ${ v } .` ,
237
+ ) ;
238
+ obj [ depName ] = v ;
239
+ } else {
240
+ obj [ depName ] = `github:${ pkg . snapshotRepo } #${ pkg . snapshotHash } ` ;
241
+ }
242
+ } else if ( ( obj [ depName ] as string ) . match ( / \b 0 \. 0 \. 0 \b / ) ) {
243
+ obj [ depName ] = ( obj [ depName ] as string ) . replace ( / \b 0 \. 0 \. 0 \b / , v ) ;
244
+ }
245
+ }
246
+ }
247
+ }
248
+
249
+ fs . writeFileSync ( packageJsonPath , JSON . stringify ( packageJson , null , 2 ) + '\n' ) ;
250
+ }
251
+ }
252
+
253
+ async function _setPackageGroups ( sortedPackages : string [ ] , logger : logging . Logger ) {
254
+ for ( const packageName of sortedPackages ) {
255
+ logger . info ( packageName ) ;
256
+ const pkg = packages [ packageName ] ;
257
+
258
+ const packageJsonPath = path . join ( pkg . dist , 'package.json' ) ;
259
+ const packageJson = pkg . packageJson ;
260
+ // tslint:disable-next-line:no-any
261
+ const ngUpdateJson : any = packageJson [ 'ng-update' ] || ( packageJson [ 'ng-update' ] = { } ) ;
262
+ const packageGroup = ngUpdateJson [ 'packageGroup' ] || ( ngUpdateJson [ 'packageGroup' ] = { } ) ;
263
+
264
+ let changed = false ;
265
+ for ( const subPackageName of sortedPackages ) {
266
+ const subpkg = packages [ subPackageName ] ;
267
+ if ( packageGroup [ subPackageName ] === '0.0.0' ) {
268
+ packageGroup [ subPackageName ] = subpkg . version ;
269
+ changed = true ;
270
+ }
271
+ }
272
+
273
+ if ( changed ) {
274
+ fs . writeFileSync ( packageJsonPath , JSON . stringify ( packageJson , null , 2 ) + '\n' ) ;
275
+ }
276
+ }
277
+ }
278
+
206
279
export default async function (
207
280
argv : { local ?: boolean , snapshot ?: boolean } ,
208
281
logger : logging . Logger ,
@@ -350,48 +423,10 @@ export default async function(
350
423
}
351
424
352
425
logger . info ( 'Setting versions...' ) ;
426
+ await _setVersions ( sortedPackages , argv , logger . createChild ( 'versions' ) ) ;
353
427
354
- const versionLogger = logger . createChild ( 'versions' ) ;
355
- for ( const packageName of sortedPackages ) {
356
- versionLogger . info ( packageName ) ;
357
- const pkg = packages [ packageName ] ;
358
- const packageJsonPath = path . join ( pkg . dist , 'package.json' ) ;
359
- const packageJson = pkg . packageJson ;
360
- const version = pkg . version ;
361
-
362
- if ( version ) {
363
- packageJson [ 'version' ] = version ;
364
- } else {
365
- versionLogger . error ( 'No version found... Only updating dependencies.' ) ;
366
- }
367
-
368
- for ( const depName of Object . keys ( packages ) ) {
369
- const v = packages [ depName ] . version ;
370
- for ( const depKey of [ 'dependencies' , 'peerDependencies' , 'devDependencies' ] ) {
371
- const obj = packageJson [ depKey ] as JsonObject | null ;
372
- if ( obj && obj [ depName ] ) {
373
- if ( argv . local ) {
374
- obj [ depName ] = packages [ depName ] . tar ;
375
- } else if ( argv . snapshot ) {
376
- const pkg = packages [ depName ] ;
377
- if ( ! pkg . snapshotRepo ) {
378
- versionLogger . error (
379
- `Package ${ JSON . stringify ( depName ) } is not published as a snapshot. `
380
- + `Fixing to current version ${ v } .` ,
381
- ) ;
382
- obj [ depName ] = v ;
383
- } else {
384
- obj [ depName ] = `github:${ pkg . snapshotRepo } #${ pkg . snapshotHash } ` ;
385
- }
386
- } else if ( ( obj [ depName ] as string ) . match ( / \b 0 \. 0 \. 0 \b / ) ) {
387
- obj [ depName ] = ( obj [ depName ] as string ) . replace ( / \b 0 \. 0 \. 0 \b / , v ) ;
388
- }
389
- }
390
- }
391
- }
392
-
393
- fs . writeFileSync ( packageJsonPath , JSON . stringify ( packageJson , null , 2 ) + '\n' ) ;
394
- }
428
+ logger . info ( 'Setting packageGroups...' ) ;
429
+ await _setPackageGroups ( sortedPackages , logger . createChild ( 'packageGroups' ) ) ;
395
430
396
431
logger . info ( 'Tarring all packages...' ) ;
397
432
const tarLogger = logger . createChild ( 'license' ) ;
0 commit comments