UNPKG

granula

Version:

i18n tool for angular.js applications

41 lines (35 loc) 1.27 kB
(function() { var ADDED_KEY, DELETED_KEY, _; _ = require('underscore'); ADDED_KEY = "-------------------added"; DELETED_KEY = "-----------------deleted"; module.exports = { merge: function(oldJson, newJson, options) { var appeared, disappeared, existent, newKeys, newObj, oldKeys, previouslyDeleted; options = _.defaults(options, { translateMe: "✍ " }); previouslyDeleted = oldJson[DELETED_KEY]; oldJson = _.omit(oldJson, DELETED_KEY, ADDED_KEY); oldKeys = _.keys(oldJson); newKeys = _.keys(newJson); existent = _.intersection(oldKeys, newKeys); disappeared = _.difference(oldKeys, newKeys); appeared = _.difference(newKeys, oldKeys); newObj = {}; if (appeared.length > 0) { newObj[ADDED_KEY] = "" + (new Date().toString()); } _.extend(newObj, _.object(appeared.map(function(k) { return [k, "" + options.translateMe + " " + newJson[k]]; }))); newObj[DELETED_KEY] = _.extend({}, _.object(disappeared.map(function(k) { return [k, oldJson[k]]; })), previouslyDeleted); _.extend(newObj, _.object(existent.map(function(k) { return [k, oldJson[k]]; }))); return newObj; } }; }).call(this);