UNPKG

jsonstore-js

Version:

A javascript JSON data store with manifold abilities of data processing

71 lines (65 loc) 2.15 kB
'use strict'; 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;