mirror of
https://github.com/pnpm/pnpm.git
synced 2026-03-29 20:41:47 -04:00
20 lines
722 B
TypeScript
20 lines
722 B
TypeScript
export interface EnvSpecifier {
|
|
releaseChannel: string
|
|
versionSpecifier: string
|
|
}
|
|
|
|
export function parseEnvSpecifier (specifier: string): EnvSpecifier {
|
|
if (specifier.includes('/')) {
|
|
const [releaseChannel, versionSpecifier] = specifier.split('/')
|
|
return { releaseChannel, versionSpecifier }
|
|
}
|
|
const prereleaseMatch = specifier.match(/-(nightly|rc|test|v8-canary)/)
|
|
if (prereleaseMatch != null) {
|
|
return { releaseChannel: prereleaseMatch[1], versionSpecifier: specifier }
|
|
}
|
|
if (['nightly', 'rc', 'test', 'release', 'v8-canary'].includes(specifier)) {
|
|
return { releaseChannel: specifier, versionSpecifier: 'latest' }
|
|
}
|
|
return { releaseChannel: 'release', versionSpecifier: specifier }
|
|
}
|