ts-flex-query
Version:
Flexible and type-safe data queries
23 lines • 1.07 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.MapExpression = void 0;
const evaluate_expression_1 = require("../helpers/evaluate-expression");
const evaluation_context_utils_1 = require("../helpers/evaluation-context-utils");
const data_type_1 = require("../types/data-type");
class MapExpression {
constructor(input, variableSymbol, body) {
this.input = input;
this.variableSymbol = variableSymbol;
this.body = body;
this.dataType = { type: data_type_1.DataTypeType.array, elementType: body.dataType };
}
evaluate(context) {
const inputValue = (0, evaluate_expression_1.evaluateExpression)(this.input, context);
const elementsResult = Array.isArray(inputValue)
? inputValue.map((element) => (0, evaluate_expression_1.evaluateExpression)(this.body, (0, evaluation_context_utils_1.addVariable)(context, this.variableSymbol, element)))
: [];
return elementsResult;
}
}
exports.MapExpression = MapExpression;
//# sourceMappingURL=map.js.map