UNPKG

ts-flex-query

Version:
27 lines 1.06 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.FilterExpression = void 0; const evaluate_expression_1 = require("../helpers/evaluate-expression"); const evaluation_context_utils_1 = require("../helpers/evaluation-context-utils"); class FilterExpression { get dataType() { return this.input.dataType; } constructor(input, variableSymbol, body) { this.input = input; this.variableSymbol = variableSymbol; this.body = body; } evaluate(context) { const inputResult = (0, evaluate_expression_1.evaluateExpression)(this.input, context); if (!Array.isArray(inputResult)) { return []; } return inputResult.filter((element) => { const innerContext = (0, evaluation_context_utils_1.addVariable)(context, this.variableSymbol, element); return (0, evaluate_expression_1.evaluateExpression)(this.body, innerContext); }); } } exports.FilterExpression = FilterExpression; //# sourceMappingURL=filter.js.map