@forestadmin/datasource-toolkit
Version:
28 lines • 2.74 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
class ConditionTree {
apply(records, collection, timezone) {
return records.filter(record => this.match(record, collection, timezone));
}
nest(prefix) {
return prefix && prefix.length
? this.replaceLeafs(leaf => leaf.override({ field: `${prefix}:${leaf.field}` }))
: this;
}
unnest() {
let prefix = null;
this.someLeaf(leaf => {
[prefix] = leaf.field.split(':');
return false;
});
if (!this.everyLeaf(leaf => leaf.field.startsWith(prefix))) {
throw new Error('Cannot unnest condition tree.');
}
return this.replaceLeafs(leaf => leaf.override({ field: leaf.field.substring(prefix.length + 1) }));
}
replaceFields(handler) {
return this.replaceLeafs(leaf => leaf.override({ field: handler(leaf.field) }));
}
}
exports.default = ConditionTree;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9pbnRlcmZhY2VzL3F1ZXJ5L2NvbmRpdGlvbi10cmVlL25vZGVzL2Jhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFjQSxNQUE4QixhQUFhO0lBY3pDLEtBQUssQ0FBQyxPQUFxQixFQUFFLFVBQXNCLEVBQUUsUUFBZ0I7UUFDbkUsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUVELElBQUksQ0FBQyxNQUFjO1FBQ2pCLE9BQU8sTUFBTSxJQUFJLE1BQU0sQ0FBQyxNQUFNO1lBQzVCLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLE1BQU0sSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ2hGLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDWCxDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksTUFBTSxHQUFXLElBQUksQ0FBQztRQUMxQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ25CLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFFakMsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRTtZQUMxRCxNQUFNLElBQUksS0FBSyxDQUFDLCtCQUErQixDQUFDLENBQUM7U0FDbEQ7UUFFRCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FDOUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FDbEUsQ0FBQztJQUNKLENBQUM7SUFFRCxhQUFhLENBQUMsT0FBa0M7UUFDOUMsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2xGLENBQUM7Q0FDRjtBQTVDRCxnQ0E0Q0MifQ==
;