11#!/usr/bin/env node
22
3- import path from "node:path" ;
43import { readFileSync } from "node:fs" ;
4+ import path from "node:path" ;
55import { fileURLToPath } from "node:url" ;
66
7+ const PACKAGE_VERSION_PATTERN = / ^ ( \d + \. \d + \. \d + ) (?: - .+ ) ? $ / ;
8+ const VERSION_CORE_PATTERN = / ^ ( \d + ) \. ( \d + ) \. ( \d + ) (?: - .+ ) ? $ / ;
9+
710export function resolveDevVersion ( options ) {
811 const baseVersion = requireValue ( options . baseVersion , "baseVersion" ) ;
912 const runNumber = requireValue ( options . runNumber , "runNumber" ) ;
@@ -29,7 +32,9 @@ export function resolveNextBetaVersion(options) {
2932 return `${ baseVersion } -beta.0` ;
3033 }
3134
32- const betaMatch = normalizedLatest . match ( new RegExp ( `^${ escapeRegExp ( baseVersion ) } -beta\\.(\\d+)$` ) ) ;
35+ const betaMatch = normalizedLatest . match (
36+ new RegExp ( `^${ escapeRegExp ( baseVersion ) } -beta\\.(\\d+)$` ) ,
37+ ) ;
3338 if ( betaMatch ) {
3439 const nextNumber = Number ( betaMatch [ 1 ] ) + 1 ;
3540 return `${ baseVersion } -beta.${ nextNumber } ` ;
@@ -43,11 +48,16 @@ export function resolveNextBetaVersion(options) {
4348export function resolvePackageReleaseBaseVersion ( packageDir ) {
4449 const manifestPath = path . join ( getRepoRoot ( ) , packageDir , "package.json" ) ;
4550 const manifest = JSON . parse ( readFileSync ( manifestPath , "utf8" ) ) ;
46- const version = requireValue ( manifest . version , `${ packageDir } package.json version` ) ;
47- const match = version . match ( / ^ ( \d + \. \d + \. \d + ) (?: - .+ ) ? $ / ) ;
51+ const version = requireValue (
52+ manifest . version ,
53+ `${ packageDir } package.json version` ,
54+ ) ;
55+ const match = version . match ( PACKAGE_VERSION_PATTERN ) ;
4856
4957 if ( ! match ) {
50- throw new Error ( `Cannot derive release base from ${ packageDir } package version (${ version } ).` ) ;
58+ throw new Error (
59+ `Cannot derive release base from ${ packageDir } package version (${ version } ).` ,
60+ ) ;
5161 }
5262
5363 return match [ 1 ] ;
@@ -79,7 +89,7 @@ function isOlderReleaseLine(latest, baseVersion) {
7989}
8090
8191function parseVersionCore ( version ) {
82- const match = version . match ( / ^ ( \d + ) \. ( \d + ) \. ( \d + ) (?: - . + ) ? $ / ) ;
92+ const match = version . match ( VERSION_CORE_PATTERN ) ;
8393
8494 if ( ! match ) {
8595 return undefined ;
@@ -139,34 +149,45 @@ function main() {
139149 const baseVersion = resolvePackageReleaseBaseVersion ( packageDir ) ;
140150
141151 if ( command === "dev" ) {
142- process . stdout . write ( `version=${ resolveDevVersion ( {
143- baseVersion,
144- runNumber : options [ "run-number" ] ,
145- runAttempt : options [ "run-attempt" ] ,
146- } ) } \n`) ;
152+ process . stdout . write (
153+ `version=${ resolveDevVersion ( {
154+ baseVersion,
155+ runNumber : options [ "run-number" ] ,
156+ runAttempt : options [ "run-attempt" ] ,
157+ } ) } \n`,
158+ ) ;
147159 return ;
148160 }
149161
150162 if ( command === "pr" ) {
151- process . stdout . write ( `version=${ resolvePrVersion ( {
152- baseVersion,
153- prNumber : options [ "pr-number" ] ,
154- sha : options . sha ,
155- } ) } \n`) ;
163+ process . stdout . write (
164+ `version=${ resolvePrVersion ( {
165+ baseVersion,
166+ prNumber : options [ "pr-number" ] ,
167+ sha : options . sha ,
168+ } ) } \n`,
169+ ) ;
156170 return ;
157171 }
158172
159173 if ( command === "next-beta" ) {
160174 const latest = options . latest ?? "" ;
161175 process . stdout . write ( `latest=${ latest } \n` ) ;
162- process . stdout . write ( `version=${ resolveNextBetaVersion ( { baseVersion, latest } ) } \n` ) ;
176+ process . stdout . write (
177+ `version=${ resolveNextBetaVersion ( { baseVersion, latest } ) } \n` ,
178+ ) ;
163179 return ;
164180 }
165181
166- throw new Error ( "Usage: resolve-package-version.mjs <dev|pr|next-beta> [--package-dir <path>] [options]" ) ;
182+ throw new Error (
183+ "Usage: resolve-package-version.mjs <dev|pr|next-beta> [--package-dir <path>] [options]" ,
184+ ) ;
167185}
168186
169- if ( process . argv [ 1 ] && fileURLToPath ( import . meta. url ) === path . resolve ( process . argv [ 1 ] ) ) {
187+ if (
188+ process . argv [ 1 ] &&
189+ fileURLToPath ( import . meta. url ) === path . resolve ( process . argv [ 1 ] )
190+ ) {
170191 try {
171192 main ( ) ;
172193 } catch ( error ) {
0 commit comments