@c11/engine.db
Version:
The engine db
86 lines • 7.51 kB
JavaScript
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
var _a;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getRefinedValue = void 0;
var engine_types_1 = require("@c11/engine.types");
var isString_1 = __importDefault(require("lodash/isString"));
var isArray_1 = __importDefault(require("lodash/isArray"));
var isFunction_1 = __importDefault(require("lodash/isFunction"));
var getNode_1 = __importDefault(require("./getNode"));
var isWildcardPath_1 = require("./isWildcardPath");
var splitPath_1 = __importDefault(require("./splitPath"));
var getValuePath = function (db, path, patch) {
if ((0, isWildcardPath_1.isWildcardPath)(path)) {
if (!patch || !patch[0] || !patch[0].path) {
return;
}
var patchPath = patch[0].path;
var pathParts = (0, splitPath_1.default)(path);
var patchParts = (0, splitPath_1.default)(patchPath);
var pathIdx = pathParts.indexOf("*");
var sufix = pathParts.slice(pathIdx + 1);
var resultPath = void 0;
if (pathParts.length < patchParts.length) {
resultPath = "/" + patchParts.slice(0, pathParts.length).join("/");
}
else if (pathParts.length > patchParts.length && sufix.length > 0) {
resultPath = "".concat(patchPath, "/").concat(sufix.join("/"));
}
else {
resultPath = patch[0].path;
}
// console.log(path, patchPath, resultPath, patch);
return (0, getNode_1.default)(db, resultPath, patch);
}
else {
return (0, getNode_1.default)(db, path, patch);
}
};
var ops = (_a = {},
_a[engine_types_1.AccessMethods.value] = function (db, path, patch, refinee) {
var val = getValuePath(db, path, patch);
return val;
},
_a[engine_types_1.AccessMethods.includes] = function (db, path, patch, refinee) {
var val = (0, getNode_1.default)(db, path, patch);
var searchFor = refinee.args && refinee.args[0];
if ((0, isArray_1.default)(val) || (0, isString_1.default)(val)) {
return val.includes(searchFor);
}
},
_a[engine_types_1.AccessMethods.length] = function (db, path, patch, refinee) {
var val = (0, getNode_1.default)(db, path, patch);
if (!((0, isString_1.default)(val) || (0, isArray_1.default)(val) || (0, isFunction_1.default)(val))) {
return;
}
return val.length;
},
_a[engine_types_1.AccessMethods.isObserved] = function (db, path, patch, refinee) {
var targetPath = (0, isWildcardPath_1.isWildcardPath)(path) && patch[0] ? patch[0].path : path;
if (!db.updates.fns[targetPath]) {
return false;
}
var listener = Object.values(db.updates.fns[targetPath]).find(function (x) {
//@ts-ignore
return x.refinee.type !== engine_types_1.AccessMethods.isObserved;
});
if (listener) {
return true;
}
else {
return false;
}
},
_a);
function getRefinedValue(db, path, patch, refinee) {
if (!refinee || !refinee.type || !ops[refinee.type]) {
return;
}
var value = ops[refinee.type](db, path, patch, refinee);
return value;
}
exports.getRefinedValue = getRefinedValue;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0UmVmaW5lZFZhbHVlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ZuL2dldFJlZmluZWRWYWx1ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsa0RBQWtEO0FBQ2xELDZEQUF1QztBQUN2QywyREFBcUM7QUFDckMsaUVBQTJDO0FBQzNDLHNEQUFnQztBQUNoQyxtREFBa0Q7QUFDbEQsMERBQW9DO0FBRXBDLElBQU0sWUFBWSxHQUFHLFVBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxLQUFLO0lBQ25DLElBQUksSUFBQSwrQkFBYyxFQUFDLElBQUksQ0FBQyxFQUFFO1FBQ3hCLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFO1lBQ3pDLE9BQU87U0FDUjtRQUNELElBQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDaEMsSUFBTSxTQUFTLEdBQUcsSUFBQSxtQkFBUyxFQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xDLElBQU0sVUFBVSxHQUFHLElBQUEsbUJBQVMsRUFBQyxTQUFTLENBQUMsQ0FBQztRQUN4QyxJQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZDLElBQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzNDLElBQUksVUFBVSxTQUFBLENBQUM7UUFFZixJQUFJLFNBQVMsQ0FBQyxNQUFNLEdBQUcsVUFBVSxDQUFDLE1BQU0sRUFBRTtZQUN4QyxVQUFVLEdBQUcsR0FBRyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDcEU7YUFBTSxJQUFJLFNBQVMsQ0FBQyxNQUFNLEdBQUcsVUFBVSxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNuRSxVQUFVLEdBQUcsVUFBRyxTQUFTLGNBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBRSxDQUFDO1NBQ2hEO2FBQU07WUFDTCxVQUFVLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztTQUM1QjtRQUNELG1EQUFtRDtRQUNuRCxPQUFPLElBQUEsaUJBQU8sRUFBQyxFQUFFLEVBQUUsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO0tBQ3ZDO1NBQU07UUFDTCxPQUFPLElBQUEsaUJBQU8sRUFBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0tBQ2pDO0FBQ0gsQ0FBQyxDQUFDO0FBRUYsSUFBSSxHQUFHO0lBQ0wsR0FBQyw0QkFBYSxDQUFDLEtBQUssSUFBRyxVQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE9BQU87UUFDOUMsSUFBSSxHQUFHLEdBQUcsWUFBWSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDeEMsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBQ0QsR0FBQyw0QkFBYSxDQUFDLFFBQVEsSUFBRyxVQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE9BQU87UUFDakQsSUFBTSxHQUFHLEdBQUcsSUFBQSxpQkFBTyxFQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDckMsSUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLElBQUksSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xELElBQUksSUFBQSxpQkFBTyxFQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUEsa0JBQVEsRUFBQyxHQUFHLENBQUMsRUFBRTtZQUNqQyxPQUFPLEdBQUcsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDaEM7SUFDSCxDQUFDO0lBQ0QsR0FBQyw0QkFBYSxDQUFDLE1BQU0sSUFBRyxVQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE9BQU87UUFDL0MsSUFBTSxHQUFHLEdBQUcsSUFBQSxpQkFBTyxFQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFckMsSUFBSSxDQUFDLENBQUMsSUFBQSxrQkFBUSxFQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUEsaUJBQU8sRUFBQyxHQUFHLENBQUMsSUFBSSxJQUFBLG9CQUFVLEVBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtZQUN2RCxPQUFPO1NBQ1I7UUFFRCxPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUM7SUFDcEIsQ0FBQztJQUNELEdBQUMsNEJBQWEsQ0FBQyxVQUFVLElBQUcsVUFBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxPQUFPO1FBQ25ELElBQUksVUFBVSxHQUFHLElBQUEsK0JBQWMsRUFBQyxJQUFJLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUN6RSxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDL0IsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUVELElBQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBQyxDQUFDO1lBQ2hFLFlBQVk7WUFDWixPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLDRCQUFhLENBQUMsVUFBVSxDQUFDO1FBQ3JELENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxRQUFRLEVBQUU7WUFDWixPQUFPLElBQUksQ0FBQztTQUNiO2FBQU07WUFDTCxPQUFPLEtBQUssQ0FBQztTQUNkO0lBQ0gsQ0FBQztPQUNGLENBQUM7QUFFRixTQUFnQixlQUFlLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsT0FBTztJQUN0RCxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7UUFDbkQsT0FBTztLQUNSO0lBQ0QsSUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztJQUUxRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFQRCwwQ0FPQyJ9
;