@beemo/config-constants
Version:
Reusable constants for Beemo configurations.
110 lines (79 loc) • 2.46 kB
JavaScript
;
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