@c11/engine.db
Version:
The engine db
44 lines • 3.06 kB
JavaScript
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
;