@o3r/schematics
Version:
Schematics module of the Otter framework
36 lines • 1.82 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getExternalDependenciesVersionRange = getExternalDependenciesVersionRange;
exports.getNodeDependencyList = getNodeDependencyList;
const fs = require("node:fs");
/**
* Method to extract the provided package version range from a package.json file
* @param packageNames list of package we want to retrieve the version
* @param packageJsonPath Path to the package.json to refer to
* @param logger logger
* @returns The version range value retrieved from the provided package.json file
*/
function getExternalDependenciesVersionRange(packageNames, packageJsonPath, logger) {
const packageJsonContent = JSON.parse(fs.readFileSync(packageJsonPath, { encoding: 'utf8' }));
return packageNames.reduce((acc, packageName) => {
acc[packageName] = packageJsonContent.generatorDependencies?.[packageName]
|| packageJsonContent.peerDependencies?.[packageName]
|| packageJsonContent.dependencies?.[packageName]
|| packageJsonContent.devDependencies?.[packageName];
if (!acc[packageName]) {
logger.warn(`Unable to retrieve version for ${packageName} in ${packageJsonPath}. Version set to "latest".`);
acc[packageName] = 'latest';
}
return acc;
}, {});
}
/**
* Method used to build the list of node dependencies to be installed
* @param dependenciesVersions map of dependency and its associated required version
* @param type node type of the dependency
* @returns the list of node dependencies to be installed
*/
function getNodeDependencyList(dependenciesVersions, type) {
return Object.entries(dependenciesVersions).map(([name, version]) => ({ name, version, type, overwrite: true }));
}
//# sourceMappingURL=dependencies.js.map