UNPKG

node-version-alias

Version:

Resolve Node.js version aliases like 'latest', 'lts' or 'erbium'

54 lines (37 loc) 1.2 kB
import normalizeNodeVersion from"normalize-node-version"; import semver from"semver"; import{getConstantAlias}from"./constant.js"; import{getLtsAlias}from"./lts.js"; import{getNvmCustomAlias}from"./nvm.js"; import{getOpts}from"./options.js"; const nodeVersionAlias=async(alias,opts)=>{ const{allNodeOpts,normalizeOpts}=getOpts(opts); const versionRange=await getVersionRange(alias,allNodeOpts); if(versionRange===undefined){ throw new Error(`Invalid Node.js version alias: ${alias}`) } const version=await normalizeNodeVersion(versionRange,normalizeOpts); return version }; export default nodeVersionAlias; const getVersionRange=async(alias,allNodeOpts)=>{ if(semver.validRange(alias)!==null){ return alias } const versionRange=await getConstantAlias(alias); if(versionRange!==undefined){ return versionRange } const versionRangeA=await getLtsAlias(alias,allNodeOpts); if(versionRangeA!==undefined){ return versionRangeA } return getRecursiveNvmAlias(alias,allNodeOpts) }; const getRecursiveNvmAlias=async(alias,allNodeOpts)=>{ const aliasResult=await getNvmCustomAlias(alias); if(aliasResult===undefined||aliasResult===""){ return } return getVersionRange(aliasResult,allNodeOpts) };