UNPKG

mongoose-diff-tracking

Version:
66 lines (55 loc) 1.88 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.retargetToProp = retargetToProp; exports.retargetToPropWithRestoration = retargetToPropWithRestoration; var _oadUtils = require('oad-utils'); /** * Retarget the given UpdateOperation to the given docPath. */ function retargetToProp(docPath, _operation) { var operation = (0, _oadUtils.normalizeUpdateOperation)(_operation); var newOps = {}; var operatorNames = Object.keys(operation); var _loop = function _loop(operatorName) { var operator = operation[operatorName]; // $FlowIssue(newOps-can-have-property-of-operatorName) newOps[operatorName] = {}; Object.keys(operator).forEach(function (originalDocPath) { var newDocPath = [docPath, originalDocPath].join('.'); // $FlowIssue(newOps-can-have-new-property) newOps[operatorName][newDocPath] = operator[originalDocPath]; }); }; var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for (var _iterator = operatorNames[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var operatorName = _step.value; _loop(operatorName); } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator.return) { _iterator.return(); } } finally { if (_didIteratorError) { throw _iteratorError; } } } return newOps; } function retargetToPropWithRestoration(docPath, _operation) { var operation = retargetToProp(docPath, _operation); var $restore = operation.$restore || {}; $restore[docPath] = ''; // here we write to the operation (mutable) return Object.assign(operation, { $restore: $restore }); }