@o3r/schematics
Version:
Schematics module of the Otter framework
27 lines • 1.31 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.removePackages = removePackages;
/**
* Remove the list of given packages from package.json
* @param packagesToRemove The list of packages to remove
* @param packageJsonPath The path of the package json file from which the deps will be removed
*/
function removePackages(packagesToRemove, packageJsonPath = '/package.json') {
const filterDeps = (acc = {}, [pName, pVersion]) => {
if (!packagesToRemove.includes(pName)) {
acc[pName] = pVersion;
}
return acc;
};
return (tree, _context) => {
if (tree.exists(packageJsonPath)) {
const packageJson = JSON.parse(tree.read(packageJsonPath).toString());
packageJson.dependencies &&= Object.entries(packageJson.dependencies).reduce((acc, dep) => filterDeps(acc, dep), {});
packageJson.devDependencies &&= Object.entries(packageJson.devDependencies).reduce((acc, dep) => filterDeps(acc, dep), {});
packageJson.peerDependencies &&= Object.entries(packageJson.peerDependencies).reduce((acc, dep) => filterDeps(acc, dep), {});
tree.overwrite(packageJsonPath, JSON.stringify(packageJson, null, 2));
}
return tree;
};
}
//# sourceMappingURL=index.js.map