Skip to content

Commit 134a004

Browse files
committed
Throw on prerelease dep for safety
1 parent 9d2a138 commit 134a004

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

scripts/publish.js

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,12 +39,19 @@ const packagesToPublish = filteredLernaList.map((lerna) => {
3939
});
4040

4141
for (const packageJson of packagesToPublish) {
42+
const usedVersionFromRef = packageJson.version === versionFromRef;
43+
const tag = usedVersionFromRef ? (prerelease ? "next" : "latest") : "canary";
4244
for (const dependency in packageJson.dependencies) {
4345
if (dependency) {
4446
const lernaPackage = lernaList.find((it) => it.name === dependency);
4547
if (lernaPackage) {
4648
const changedPackage = packagesToPublish.find((it) => it.name === dependency);
4749
const version = changedPackage?.version || lernaPackage.version;
50+
if (tag === "latest" && version.includes("-")) {
51+
throw new Error(
52+
`Cowardly refusing to publish ${packageJson.name}@${packageJson.version} with dependency on a pre-release ${dependency}@${version}`,
53+
);
54+
}
4855
packageJson.dependencies[dependency] = version;
4956
}
5057
}
@@ -56,7 +63,5 @@ for (const packageJson of packagesToPublish) {
5663
? `https://wombat-dressing-room.appspot.com/${lerna.name}/_ns`
5764
: "https://registry.npmjs.org";
5865
const cwd = lerna.location;
59-
const usedVersionFromRef = packageJson.version === versionFromRef;
60-
const tag = usedVersionFromRef ? (prerelease ? "next" : "latest") : "canary";
6166
execSync(`npm publish --registry ${registry} --access public --tag ${tag} --provenance`, { cwd });
6267
}

0 commit comments

Comments
 (0)