npm-submodules
Version:
Simple way to manage typescipt and angular2 submodules from one repository
26 lines (25 loc) • 1.25 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
//todo: add setting of cross-dependencies versions
//todo: add readme field
const _ = require('lodash');
const fieldsToCopy = 'main version description main module typings browser keywords author license repository'.split(' ');
// read dependencies from main package.json
// if dependencies duplicated they will be overwritten by each other
const constants_1 = require("./constants");
function mergePackageJson(data) {
const { base, module, localDependencies } = data;
// read only needed fields from main package.json
const filteredBasePkg = _.pick(base, fieldsToCopy);
let dependenciesHash = _(base)
.pick(constants_1.dependencyKeys)
.reduce((memo, v) => Object.assign(memo, v), {});
dependenciesHash = Object.assign(dependenciesHash, localDependencies);
// update sub module package.json dependencies versions
const newModulePkg = Object.assign(filteredBasePkg, module);
_.each(constants_1.dependencyKeys, (section) => {
newModulePkg[section] = _.mapValues(newModulePkg[section], (version, dependency) => dependenciesHash[dependency]);
});
return newModulePkg;
}
exports.mergePackageJson = mergePackageJson;
;