jsonstore-js
Version:
A javascript JSON data store with manifold abilities of data processing
71 lines (65 loc) • 2.15 kB
JavaScript
;
var utils = require('./utils');
var patchTypes = {
add: 'add',
remove: 'remove',
update: 'update',
set: 'set',
moveUp: 'moveUp',
moveDown: 'moveDown',
moveTo: 'moveTo',
exchange: 'exchange',
extendObject: 'extendObject',
spreadArray: 'spreadArray',
spread2dArrayCol: 'spread2dArrayCol',
spread2dArrayRow: 'spread2dArrayRow'
};
var createPatch = function createPatch(type, args) {
args = Array.prototype.slice.call(args);
return utils.copy({
type: type,
args: args
});
};
/**
* create patch operations
* */
var patchMethods = {
createAdd: function createAdd(path, value, key) {
return createPatch(patchTypes.add, arguments);
},
createRemove: function createRemove(path) {
return createPatch(patchTypes.remove, arguments);
},
createUpdate: function createUpdate(path, value, forceUpdate) {
return createPatch(patchTypes.update, arguments);
},
createSet: function createSet(path, value) {
return createPatch(patchTypes.set, arguments);
},
createMoveUp: function createMoveUp(path) {
return createPatch(patchTypes.moveUp, arguments);
},
createMoveDown: function createMoveDown(path) {
return createPatch(patchTypes.moveDown, arguments);
},
createMoveTo: function createMoveTo(from, to, key) {
return createPatch(patchTypes.moveTo, arguments);
},
createExchange: function createExchange(from, to) {
return createPatch(patchTypes.exchange, arguments);
},
createExtendObject: function createExtendObject(path, a, b, c, d, e) {
return createPatch(patchTypes.extendObject, arguments);
},
createSpreadArray: function createSpreadArray(path, begin, infilling, simpleInfilling, count) {
return createPatch(patchTypes.spreadArray, arguments);
},
createSpread2dArrayRow: function createSpread2dArrayRow(path, begin, rows, simpleInfilling, count) {
return createPatch(patchTypes.spread2dArrayRow, arguments);
},
createSpread2dArrayCol: function createSpread2dArrayCol(path, begin, cols, simpleInfilling, count) {
return createPatch(patchTypes.spread2dArrayCol, arguments);
}
};
module.exports = patchMethods;