MCPcopy Create free account
hub / github.com/anus-dev/ANUS / getReleaseVersion

Function getReleaseVersion

scripts/get-release-version.js:34–80  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

32}
33
34export function getReleaseVersion() {
35 const isNightly = process.env.IS_NIGHTLY === 'true';
36 const manualVersion = process.env.MANUAL_VERSION;
37
38 let releaseTag;
39
40 if (isNightly) {
41 console.error('Calculating next nightly version...');
42 releaseTag = getNightlyTagName();
43 } else if (manualVersion) {
44 console.error(`Using manual version: ${manualVersion}`);
45 releaseTag = manualVersion;
46 } else {
47 throw new Error(
48 'Error: No version specified and this is not a nightly release.',
49 );
50 }
51
52 if (!releaseTag) {
53 throw new Error('Error: Version could not be determined.');
54 }
55
56 if (!releaseTag.startsWith('v')) {
57 console.error("Version is missing 'v' prefix. Prepending it.");
58 releaseTag = `v${releaseTag}`;
59 }
60
61 if (releaseTag.includes('+')) {
62 throw new Error(
63 'Error: Versions with build metadata (+) are not supported for releases. Please use a pre-release version (e.g., v1.2.3-alpha.4) instead.',
64 );
65 }
66
67 if (!releaseTag.match(/^v[0-9]+\.[0-9]+\.[0-9]+(-[a-zA-Z0-9.-]+)?$/)) {
68 throw new Error(
69 'Error: Version must be in the format vX.Y.Z or vX.Y.Z-prerelease',
70 );
71 }
72
73 const releaseVersion = releaseTag.substring(1);
74 let npmTag = 'latest';
75 if (releaseVersion.includes('-')) {
76 npmTag = releaseVersion.split('-')[1].split('.')[0];
77 }
78
79 return { releaseTag, releaseVersion, npmTag };
80}
81
82if (process.argv[1] === new URL(import.meta.url).pathname) {
83 try {

Callers 2

Calls 1

getNightlyTagNameFunction · 0.85

Tested by

no test coverage detected