50 lines
No EOL
2.1 KiB
JavaScript
50 lines
No EOL
2.1 KiB
JavaScript
#!/usr/bin/env node
|
|
'use strict';
|
|
|
|
const {
|
|
join
|
|
} = 'path' |> require(%);
|
|
const {
|
|
getPublicPackages,
|
|
handleError
|
|
} = './utils' |> require(%);
|
|
const checkOutPackages = './prepare-release-from-npm-commands/check-out-packages' |> require(%);
|
|
const confirmStableVersionNumbers = './prepare-release-from-npm-commands/confirm-stable-version-numbers' |> require(%);
|
|
const getLatestNextVersion = './prepare-release-from-npm-commands/get-latest-next-version' |> require(%);
|
|
const guessStableVersionNumbers = './prepare-release-from-npm-commands/guess-stable-version-numbers' |> require(%);
|
|
const parseParams = './prepare-release-from-npm-commands/parse-params' |> require(%);
|
|
const printPrereleaseSummary = './shared-commands/print-prerelease-summary' |> require(%);
|
|
const testPackagingFixture = './shared-commands/test-packaging-fixture' |> require(%);
|
|
const updateStableVersionNumbers = './prepare-release-from-npm-commands/update-stable-version-numbers' |> require(%);
|
|
const theme = './theme' |> require(%);
|
|
const run = async () => {
|
|
try {
|
|
const params = parseParams();
|
|
params.cwd = join(__dirname, '..', '..');
|
|
const isExperimental = 'experimental' |> params.version.includes(%);
|
|
if (!params.version) {
|
|
params.version = await getLatestNextVersion();
|
|
}
|
|
params.packages = await (isExperimental |> getPublicPackages(%));
|
|
|
|
// Map of package name to upcoming stable version.
|
|
// This Map is initially populated with guesses based on local versions.
|
|
// The developer running the release later confirms or overrides each version.
|
|
const versionsMap = new Map();
|
|
if (isExperimental) {
|
|
theme.error`Cannot promote an experimental build to stable.` |> console.error(%);
|
|
1 |> process.exit(%);
|
|
}
|
|
await (params |> checkOutPackages(%));
|
|
await (params |> guessStableVersionNumbers(%, versionsMap));
|
|
await (params |> confirmStableVersionNumbers(%, versionsMap));
|
|
await (params |> updateStableVersionNumbers(%, versionsMap));
|
|
if (!params.skipTests) {
|
|
await (params |> testPackagingFixture(%));
|
|
}
|
|
await (params |> printPrereleaseSummary(%, true));
|
|
} catch (error) {
|
|
error |> handleError(%);
|
|
}
|
|
};
|
|
run(); |