node-version-alias
Version:
Resolve Node.js version aliases like 'latest', 'lts' or 'erbium'
40 lines (25 loc) • 674 B
JavaScript
import{execFile}from"node:child_process";
import{join}from"node:path";
import{env}from"node:process";
import{promisify}from"node:util";
import{pathExists}from"path-exists";
const pExecFile=promisify(execFile);
export const getNvmCustomAlias=(alias)=>runNvmCommand(`nvm_alias ${alias}`);
export const getNvmSystemVersion=()=>
runNvmCommand("nvm deactivate >/dev/null && node --version");
const runNvmCommand=async(command)=>{
if(!env.NVM_DIR){
return
}
const nvmPath=join(env.NVM_DIR,"nvm.sh");
if(!(await pathExists(nvmPath))){
return
}
try{
const{stdout}=await pExecFile("bash",[
"-c",
`source "${nvmPath}" && ${command}`]
);
return stdout.trim()
}catch{}
};