@lyra/form-builder
Version:
Lyra form builder
46 lines (32 loc) • 1.11 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _isObject2 = require('lodash/isObject');
var _isObject3 = _interopRequireDefault(_isObject2);
exports.applyAll = applyAll;
exports.default = _apply;
var _array = require('./array');
var _array2 = _interopRequireDefault(_array);
var _object = require('./object');
var _object2 = _interopRequireDefault(_object);
var _primitive = require('./primitive');
var _primitive2 = _interopRequireDefault(_primitive);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function applyAll(value, patches) {
return patches.reduce(_apply, value);
}
function applyPatch(value, patch) {
if (Array.isArray(value)) {
return (0, _array2.default)(value, patch);
}
if ((0, _isObject3.default)(value)) {
return (0, _object2.default)(value, patch);
}
return (0, _primitive2.default)(value, patch);
}
function _apply(value, patch) {
const res = applyPatch(value, patch);
// console.log('applyPatch(%o, %o) : %o (noop? %o)', value, patch, res, value === res)
return res;
}