@forestadmin/datasource-toolkit
Version:
49 lines • 4.79 kB
JavaScript
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const base_1 = __importDefault(require("./base"));
const projection_1 = __importDefault(require("../../projection"));
class ConditionTreeBranch extends base_1.default {
get projection() {
return this.conditions.reduce((memo, condition) => memo.union(condition.projection), new projection_1.default());
}
constructor(aggregator, conditions) {
super();
this.aggregator = aggregator;
this.conditions = conditions;
}
forEachLeaf(handler) {
this.conditions.forEach(c => c.forEachLeaf(handler));
}
everyLeaf(handler) {
return this.conditions.every(c => c.everyLeaf(handler));
}
someLeaf(handler) {
return this.conditions.some(c => c.someLeaf(handler));
}
inverse() {
const aggregator = this.aggregator === 'Or' ? 'And' : 'Or';
return new ConditionTreeBranch(aggregator, this.conditions.map(c => c.inverse()));
}
replaceLeafs(handler, bind) {
return new ConditionTreeBranch(this.aggregator, this.conditions.map(c => c.replaceLeafs(handler, bind)));
}
async replaceLeafsAsync(handler, bind) {
return new ConditionTreeBranch(this.aggregator, await Promise.all(this.conditions.map(c => c.replaceLeafsAsync(handler, bind))));
}
match(record, collection, timezone) {
return this.aggregator === 'And'
? this.conditions.every(c => c.match(record, collection, timezone))
: this.conditions.some(c => c.match(record, collection, timezone));
}
toPlainObject() {
return {
aggregator: this.aggregator,
conditions: this.conditions.map(c => c.toPlainObject()),
};
}
}
exports.default = ConditionTreeBranch;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJhbmNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2ludGVyZmFjZXMvcXVlcnkvY29uZGl0aW9uLXRyZWUvbm9kZXMvYnJhbmNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsa0RBQW1DO0FBVW5DLGtFQUEwQztBQVMxQyxNQUFxQixtQkFBb0IsU0FBUSxjQUFhO0lBSTVELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQzNCLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLEVBQ3JELElBQUksb0JBQVUsRUFBRSxDQUNqQixDQUFDO0lBQ0osQ0FBQztJQUVELFlBQVksVUFBc0IsRUFBRSxVQUEyQjtRQUM3RCxLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO0lBQy9CLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBcUI7UUFDL0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELFNBQVMsQ0FBQyxPQUFtQjtRQUMzQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxRQUFRLENBQUMsT0FBbUI7UUFDMUIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsT0FBTztRQUNMLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUUzRCxPQUFPLElBQUksbUJBQW1CLENBQzVCLFVBQVUsRUFDVixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUN0QyxDQUFDO0lBQ0osQ0FBQztJQUVELFlBQVksQ0FBQyxPQUFxQixFQUFFLElBQWM7UUFDaEQsT0FBTyxJQUFJLG1CQUFtQixDQUM1QixJQUFJLENBQUMsVUFBVSxFQUNmLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FDeEQsQ0FBQztJQUNKLENBQUM7SUFFRCxLQUFLLENBQUMsaUJBQWlCLENBQUMsT0FBMEIsRUFBRSxJQUFjO1FBQ2hFLE9BQU8sSUFBSSxtQkFBbUIsQ0FDNUIsSUFBSSxDQUFDLFVBQVUsRUFDZixNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FDaEYsQ0FBQztJQUNKLENBQUM7SUFFRCxLQUFLLENBQUMsTUFBa0IsRUFBRSxVQUFzQixFQUFFLFFBQWdCO1FBQ2hFLE9BQU8sSUFBSSxDQUFDLFVBQVUsS0FBSyxLQUFLO1lBQzlCLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztZQUNuRSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQsYUFBYTtRQUNYLE9BQU87WUFDTCxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDM0IsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQ3hELENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFoRUQsc0NBZ0VDIn0=
;