json-combinator
Version:
Combine JSON files (or simple) JavaScript Objects.
26 lines (25 loc) • 709 B
JavaScript
function extend(target) {
var sources = [].slice.call(arguments, 1);
sources.forEach(function (source) {
for (var prop in source) {
target[prop] = source[prop];
}
});
return target;
}
function JSONCombinator (json) { this.json = json; }
JSONCombinator.prototype.add = function(object) {
var keys = Object.keys(object);
for (var i = keys.length - 1; i >= 0; i--) {
if (this.json[keys[i]]) {
this.json[keys[i]] = extend({}, this.json[keys[i]], object[keys[i]]);
}
}
};
JSONCombinator.prototype.toJSON = function() {
return JSON.stringify(this.json, null, 2);
};
JSONCombinator.prototype.toObject = function() {
return this.json;
};
module.exports = JSONCombinator;