@anolilab/package-json-utils
Version:
Shared utilities for parsing information from a package.json.
66 lines (53 loc) • 3.65 kB
JavaScript
;
var fs = require('fs');
var g = require('module');
var path = require('path');
var process = require('process');
var dotPathValue = require('dot-path-value');
var $ = require('read-pkg-up');
var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
var g__default = /*#__PURE__*/_interopDefault(g);
var $__default = /*#__PURE__*/_interopDefault($);
var l=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(n,t)=>(typeof require<"u"?require:n)[t]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var {packageJson:o,path:u}=$__default.default.sync({cwd:fs.realpathSync(process.cwd())})??{packageJson:void 0,path:void 0},p=e=>e.split("@").includes("@")?e:`${e}@latest`,w=e=>{if(o!==void 0)return dotPathValue.getByPath(o,e)},U=e=>n=>w(`${e}.${n}`),c=e=>!!(o!==void 0&&dotPathValue.getByPath(o,e)),d=e=>n=>c(`${e}.${n}`),x=(e,n)=>n?e.every(t=>c(t)):e.some(t=>c(t)),a=e=>(n,t)=>x(n.map(r=>`${e}.${r}`),t),T=e=>!!(process.env[e]&&process.env[e]!=="undefined"),_=(e,n)=>{if(T(e))try{return JSON.parse(process.env[e]??"")}catch{return process.env[e]}return n},m=u?path.dirname(u):"",C=m,S=(...e)=>path.join(m,...e),M=(...e)=>fs.existsSync(S(...e)),G=a("scripts"),H=d("peerDependencies"),j=a("peerDependencies"),R=d("dependencies"),J=a("dependencies"),V=d("devDependencies"),q=a("devDependencies"),K=(e,n)=>[J,q,n?.peerDeps===!1?()=>!1:j].some(t=>t(e,n?.strict)),Q=(R("typescript")||V("typescript"))&&M("tsconfig.json"),A=x(["type"])&&o?.type==="module",B=e=>{if(process.versions.pnp){let n=(typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.src || new URL('out.js', document.baseURI).href)),r=g__default.default.findPnpApi(n).resolveRequest(e,n);if(r)return r}else if(A){let n=(typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.src || new URL('out.js', document.baseURI).href));try{return g__default.default.createRequire(n).resolve(e)}catch{return}}try{return l.resolve(e)}catch{return}},W=e=>B(e)!==void 0,X=(e,n,t={})=>{let r=n.length===1?"":"s";console[t.consoleType??"warn"](`
${t.preMessage??""}
${e} could not find the following package${r}
${n.join(`
`)}
To install the missing package${r}, please run the following command:
npm install ${n.map(s=>p(s)).join(" ")} --save-dev
or
yarn add ${n.map(s=>p(s)).join(" ")} --dev
or
pnpm add ${n.map(s=>p(s)).join(" ")} -D
${t.postMessage??""}
`),(process.env.NODE_ENV!=="test"||t.exit===!0)&&process.exit(1);},Y=e=>[...new Set(e)],Z=o;
exports.appDirectory = C;
exports.environmentIsSet = T;
exports.fromRoot = S;
exports.getPackageProperty = w;
exports.getPackageSubProperty = U;
exports.hasAnyDep = K;
exports.hasDependencies = J;
exports.hasDependency = R;
exports.hasDevDependencies = q;
exports.hasDevDependency = V;
exports.hasFile = M;
exports.hasPackageProperties = x;
exports.hasPackageProperty = c;
exports.hasPackageSubProperties = a;
exports.hasPackageSubProperty = d;
exports.hasPeerDependencies = j;
exports.hasPeerDependency = H;
exports.hasScripts = G;
exports.hasTypescript = Q;
exports.isPackageAvailable = W;
exports.packageIsTypeModule = A;
exports.parseEnvironment = _;
exports.pkg = Z;
exports.projectPath = m;
exports.resolvePackage = B;
exports.showMissingPackages = X;
exports.unique = Y;
//# sourceMappingURL=out.js.map
//# sourceMappingURL=index.js.map