22const { execSync } = require ( "child_process" ) ;
33const { writeFileSync, readFileSync } = require ( "fs" ) ;
44const { join } = require ( "path" ) ;
5- const { filteredLernaList, versionFromRef, shortSHA, prerelease } = require ( "./github.js" ) ;
5+ const { filteredLernaList, lernaList , versionFromRef, shortSHA, prerelease } = require ( "./github.js" ) ;
66
77const wombatDressingRoomTokens = new Map ( [
88 // ['firebase-frameworks', process.env.FIREBASE_FRAMEWORKS_NPM_TOKEN],
@@ -17,7 +17,7 @@ wombatDressingRoomTokens.forEach((token, pkg) => {
1717 } ) ;
1818} ) ;
1919
20- for ( const lerna of filteredLernaList ) {
20+ const packagesToPublish = filteredLernaList . map ( ( lerna ) => {
2121 if ( versionFromRef && versionFromRef . split ( "-" ) [ 0 ] !== lerna . version ) {
2222 throw new Error (
2323 `Cowardly refusing to publish ${ lerna . name } @${ versionFromRef } from ${ lerna . version } , version needs to be bumped in source.` ,
@@ -29,16 +29,25 @@ for (const lerna of filteredLernaList) {
2929 const packageJsonPath = join ( lerna . location , "package.json" ) ;
3030 const packageJson = JSON . parse ( readFileSync ( packageJsonPath ) . toString ( ) ) ;
3131 packageJson . version = version ;
32- for ( const dependency of packageJson . dependencies ) {
33- const lernaPackage = filteredLernaList . find ( it => it . name === dependency [ 0 ] ) ;
32+ return packageJson ;
33+ } ) ;
34+
35+ for ( packageJson of packagesToPublish ) {
36+ for ( const dependency in packageJson . dependencies ) {
37+ const lernaPackage = lernaList . find ( it => it . name === dependency ) ;
3438 if ( lernaPackage ) {
35- dependency [ 1 ] = lernaPackage . version ;
39+ const changedPackage = packagesToPublish . find ( it => it . name === dependency ) ;
40+ packageJson . dependencies [ dependency ] = changedPackage ?. version || lernaPackage . version ;
3641 }
3742 }
43+ const lerna = lernaList . find ( it => it . name === packageJson . name ) ;
44+ if ( ! lerna ) { throw packageJson . name }
45+ const packageJsonPath = join ( lerna . location , "package.json" ) ;
3846 writeFileSync ( packageJsonPath , JSON . stringify ( packageJson , undefined , 2 ) ) ;
3947 const registry = wombatDressingRoomTokens . get ( lerna . name )
4048 ? `https://wombat-dressing-room.appspot.com/${ lerna . name } /_ns`
4149 : "https://registry.npmjs.org" ;
42- console . log ( `npm publish --registry ${ registry } --access public --tag ${ tag } --provenance` , { cwd } ) ;
43- // execSync(`npm publish --registry ${registry} --access public --tag ${tag} --provenance`, { cwd });
50+ const cwd = lerna . location ;
51+ const tag = versionFromRef ? ( prerelease ? "next" : "latest" ) : "canary" ;
52+ execSync ( `npm publish --registry ${ registry } --access public --tag ${ tag } --provenance` , { cwd } ) ;
4453}
0 commit comments