publishr
Version:
A tool for harmonious publishing of git and npm packages.
86 lines (66 loc) • 2.24 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _logger = require("./logger");
var _logger2 = _interopRequireDefault(_logger);
var _objectAssign = require("object-assign");
var _objectAssign2 = _interopRequireDefault(_objectAssign);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var packageUtils = {
updateDependencies: function updateDependencies(json) {
if (!json.publishr || !json.publishr.dependencies) {
return json;
}
json.dependencies = (0, _objectAssign2.default)({}, json.dependencies);
json.devDependencies = (0, _objectAssign2.default)({}, json.devDependencies);
var dependencyKeys = Object.keys(json.dependencies);
json.publishr.dependencies.forEach(function (str) {
var regex = new RegExp(str);
dependencyKeys.filter(function (key) {
return regex.test(key);
}).forEach(function (key) {
json.devDependencies[key] = json.dependencies[key];
_logger2.default.pass("dependency '" + key + "'");
});
json.dependencies = dependencyKeys.filter(function (key) {
return !regex.test(key);
}).reduce(function (result, key) {
result[key] = json.dependencies[key];
return result;
}, {});
});
return json;
},
updateScripts: function updateScripts(json) {
if (!json.publishr || !json.publishr.scripts) {
return json;
}
json.scripts = (0, _objectAssign2.default)({}, json.scripts);
Object.keys(json.publishr.scripts).forEach(function (key) {
var script = json.publishr.scripts[key];
if (!script) {
delete json.scripts[key];
_logger2.default.pass("remove script '" + key + "'");
} else {
json.scripts[key] = script;
_logger2.default.pass("replace script '" + key + "'");
}
});
return json;
},
updateMeta: function updateMeta(json, files) {
json._publishr = files.map(function (file) {
return {
created: file.created,
path: file.newPath
};
});
json._publishr.push({
created: false,
path: "package.json"
});
return json;
}
};
exports.default = packageUtils;