preferred-node-version
Version:
Get the preferred Node.js version of a project or user
28 lines (19 loc) • 823 B
JavaScript
import{join,resolve}from"node:path";
import pLocate from"p-locate";
import{isFile}from"path-type";
import{getSearchDirs}from"./dirs.js";
import{loadVersionFile,NODE_VERSION_FILES}from"./load.js";
export const getFilePath=({cwd,globalOpt,files})=>{
const customFiles=files.map((filename)=>resolve(cwd,filename));
const searchFiles=getSearchFiles(cwd,globalOpt);
return pLocate([...customFiles,...searchFiles],isNodeVersionFile)
};
const getSearchFiles=(cwd,globalOpt)=>{
const searchDirs=getSearchDirs(cwd,globalOpt);
const searchFiles=searchDirs.flatMap(addNodeVersionFiles);
return searchFiles
};
const addNodeVersionFiles=(searchDir)=>
NODE_VERSION_FILES.map((filename)=>join(searchDir,filename));
const isNodeVersionFile=async(filePath)=>
(await isFile(filePath))&&(await loadVersionFile(filePath))!==undefined;