UNPKG

@c11/engine.db

Version:

The engine db

44 lines 3.06 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); var isPatch_1 = __importDefault(require("../fn/isPatch")); var applyPatch_1 = __importDefault(require("../fn/applyPatch")); var err_1 = __importDefault(require("../fn/err")); var clone_1 = __importDefault(require("../fn/clone")); var isCircular_1 = require("../fn/isCircular"); /** * patch * * Applies a patch */ //@ts-ignore var patch = function (db) { return function (patch, shouldValidate, shouldClone) { shouldValidate = shouldValidate !== undefined ? shouldValidate : true; shouldClone = shouldClone !== undefined ? shouldClone : true; if ((0, isCircular_1.isCircular)(patch)) { (0, err_1.default)(db, "/err/types/patch/3", "circular patch"); return; } if (shouldValidate && !(0, isPatch_1.default)(db.schema, patch)) { (0, err_1.default)(db, "/err/types/patch/1", patch); return; } if (shouldValidate) { // validation based on schema } if (shouldClone) { patch = (0, clone_1.default)(patch); } // @TODO by the way object data that is passed // through reference might need copying before // applying the patch var result = (0, applyPatch_1.default)(db, patch, shouldClone); if (result.revert !== undefined) { (0, err_1.default)(db, "/err/types/patch/2", patch); return result; } }; }; exports.default = patch; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0Y2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXBpL3BhdGNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsMERBQW9DO0FBQ3BDLGdFQUEwQztBQUMxQyxrREFBNEI7QUFDNUIsc0RBQWdDO0FBQ2hDLCtDQUE4QztBQUU5Qzs7OztHQUlHO0FBQ0gsWUFBWTtBQUNaLElBQU0sS0FBSyxHQUFHLFVBQUMsRUFBRSxJQUFLLE9BQUEsVUFBQyxLQUFLLEVBQUUsY0FBYyxFQUFFLFdBQVc7SUFDdkQsY0FBYyxHQUFHLGNBQWMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3RFLFdBQVcsR0FBRyxXQUFXLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUU3RCxJQUFJLElBQUEsdUJBQVUsRUFBQyxLQUFLLENBQUMsRUFBRTtRQUNyQixJQUFBLGFBQUcsRUFBQyxFQUFFLEVBQUUsb0JBQW9CLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUNoRCxPQUFPO0tBQ1I7SUFFRCxJQUFJLGNBQWMsSUFBSSxDQUFDLElBQUEsaUJBQU8sRUFBQyxFQUFFLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFFO1FBQ2hELElBQUEsYUFBRyxFQUFDLEVBQUUsRUFBRSxvQkFBb0IsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNyQyxPQUFPO0tBQ1I7SUFFRCxJQUFJLGNBQWMsRUFBRTtRQUNsQiw2QkFBNkI7S0FDOUI7SUFFRCxJQUFJLFdBQVcsRUFBRTtRQUNmLEtBQUssR0FBRyxJQUFBLGVBQUssRUFBQyxLQUFLLENBQUMsQ0FBQztLQUN0QjtJQUVELDhDQUE4QztJQUM5Qyw4Q0FBOEM7SUFDOUMscUJBQXFCO0lBQ3JCLElBQUksTUFBTSxHQUFHLElBQUEsb0JBQVUsRUFBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBRWhELElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxTQUFTLEVBQUU7UUFDL0IsSUFBQSxhQUFHLEVBQUMsRUFBRSxFQUFFLG9CQUFvQixFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3JDLE9BQU8sTUFBTSxDQUFDO0tBQ2Y7QUFDSCxDQUFDLEVBL0JxQixDQStCckIsQ0FBQztBQUVGLGtCQUFlLEtBQUssQ0FBQyJ9