UNPKG

preferred-node-version

Version:

Get the preferred Node.js version of a project or user

35 lines (24 loc) 688 B
import isPlainObj from"is-plain-obj"; export const loadPackageJson=(content)=>{ if(!seemsValidPackageJson(content)){ return } const packageJson=safeJsonParse(content); if(!objectHasEnginesNode(packageJson)){ return } return packageJson.engines.node }; const seemsValidPackageJson=(content)=> PACKAGE_JSON_VALID_WORDS.every((word)=>content.includes(word)); const PACKAGE_JSON_VALID_WORDS=["\"engines\"","\"node\""]; const safeJsonParse=(content)=>{ try{ return JSON.parse(content) }catch{} }; const objectHasEnginesNode=(packageJson)=> isPlainObj(packageJson)&& isPlainObj(packageJson.engines)&& typeof packageJson.engines.node==="string"&& packageJson.engines.node.trim()!=="";