UNPKG

@beemo/config-constants

Version:

Reusable constants for Beemo configurations.

110 lines (79 loc) 2.46 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); const fs = require('fs'); const constants = require('./constants2.js'); const _interopDefault = e => e && e.__esModule ? e : { default: e }; const fs__default = /*#__PURE__*/_interopDefault(fs); function parseJSON(filePath) { const content = fs__default.default.readFileSync(filePath, 'utf8').split('\n') // Remove comments from JSON files .filter(line => !/^\s*(#|\/)/.test(line)).join('\n'); return JSON.parse(content); } // PACKAGE.JSON let packageJson; function getRootPackageJSON() { if (packageJson === undefined) { packageJson = parseJSON(constants.PACKAGE_JSON_PATH); } return packageJson; } // NODE.JS let nodeVersion; function getTargetNodeRuntime() { if (nodeVersion !== undefined) { return nodeVersion; } try { const pkg = getRootPackageJSON(); const version = pkg.engines?.node; if (version) { nodeVersion = Number.parseFloat(version.replace(/[^\d.]+/g, '')); } } catch { nodeVersion = 0; } return nodeVersion; } // PACKAGES const versionCache = {}; function getPackageVersion(pkgName) { if (versionCache[pkgName] !== undefined) { return versionCache[pkgName]; } try { const pkg = parseJSON(require.resolve(`${pkgName}/package.json`)); versionCache[pkgName] = Number.parseFloat(pkg.version); return versionCache[pkgName]; } catch { versionCache[pkgName] = 0; } try { const pkg = getRootPackageJSON(); const version = pkg.dependencies?.[pkgName] ?? pkg.devDependencies?.[pkgName] ?? pkg.peerDependencies?.[pkgName]; if (version) { versionCache[pkgName] = Number.parseFloat(version.replace(/[^\d.]+/g, '')); return versionCache[pkgName]; } } catch { versionCache[pkgName] = 0; } return versionCache[pkgName]; } // TSCONFIG.JSON let tsconfigJson; function getRootTSConfig() { if (tsconfigJson === undefined) { tsconfigJson = parseJSON(constants.TSCONFIG_JSON_PATH); } return tsconfigJson; } // TYPESCRIPT function getRootProjectReferences() { return getRootTSConfig().references; } exports.getPackageVersion = getPackageVersion; exports.getRootPackageJSON = getRootPackageJSON; exports.getRootProjectReferences = getRootProjectReferences; exports.getRootTSConfig = getRootTSConfig; exports.getTargetNodeRuntime = getTargetNodeRuntime; exports.parseJSON = parseJSON; //# sourceMappingURL=helpers2.js.map