Files
pnpm/env/plugin-commands-env/src/parseEnvSpecifier.ts
2023-08-10 01:38:06 +03:00

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 }
}