22const { execSync } = require ( "child_process" ) ;
33const { writeFileSync, readFileSync } = require ( "fs" ) ;
44const { join } = require ( "path" ) ;
5- const { filteredLernaList, lernaList, versionFromRef, shortSHA, prerelease } = require ( "./github.js" ) ;
5+ const { filteredLernaList, lernaList, versionFromRef, shortSHA, prerelease, packageFromRef } = require ( "./github.js" ) ;
66
77const wombatDressingRoomTokens = new Map ( [
88 // ['firebase-frameworks', process.env.FIREBASE_FRAMEWORKS_NPM_TOKEN],
@@ -18,14 +18,13 @@ wombatDressingRoomTokens.forEach((token, pkg) => {
1818} ) ;
1919
2020const packagesToPublish = filteredLernaList . map ( ( lerna ) => {
21- if ( versionFromRef && versionFromRef . split ( "-" ) [ 0 ] !== lerna . version ) {
21+ const useVersionFromRef = versionFromRef && lerna . name . endsWith ( packageFromRef ) ;
22+ if ( useVersionFromRef && versionFromRef && versionFromRef . split ( "-" ) [ 0 ] !== lerna . version ) {
2223 throw new Error (
2324 `Cowardly refusing to publish ${ lerna . name } @${ versionFromRef } from ${ lerna . version } , version needs to be bumped in source.` ,
2425 ) ;
2526 }
26- const version = versionFromRef || `${ lerna . version } -canary.${ shortSHA } ` ;
27- const cwd = lerna . location ;
28- const tag = versionFromRef ? ( prerelease ? "next" : "latest" ) : "canary" ;
27+ const version = useVersionFromRef && versionFromRef || `${ lerna . version } -canary.${ shortSHA } ` ;
2928 const packageJsonPath = join ( lerna . location , "package.json" ) ;
3029 const packageJson = JSON . parse ( readFileSync ( packageJsonPath ) . toString ( ) ) ;
3130 packageJson . version = version ;
@@ -37,7 +36,8 @@ for (packageJson of packagesToPublish) {
3736 const lernaPackage = lernaList . find ( it => it . name === dependency ) ;
3837 if ( lernaPackage ) {
3938 const changedPackage = packagesToPublish . find ( it => it . name === dependency ) ;
40- packageJson . dependencies [ dependency ] = changedPackage ?. version || lernaPackage . version ;
39+ const version = changedPackage ?. version || lernaPackage . version ;
40+ packageJson . dependencies [ dependency ] = version ;
4141 }
4242 }
4343 const lerna = lernaList . find ( it => it . name === packageJson . name ) ;
@@ -48,6 +48,7 @@ for (packageJson of packagesToPublish) {
4848 ? `https://wombat-dressing-room.appspot.com/${ lerna . name } /_ns`
4949 : "https://registry.npmjs.org" ;
5050 const cwd = lerna . location ;
51- const tag = versionFromRef ? ( prerelease ? "next" : "latest" ) : "canary" ;
51+ const usedVersionFromRef = packageJson . version === versionFromRef ;
52+ const tag = usedVersionFromRef ? ( prerelease ? "next" : "latest" ) : "canary" ;
5253 execSync ( `npm publish --registry ${ registry } --access public --tag ${ tag } --provenance` , { cwd } ) ;
5354}
0 commit comments