ts-flex-query
Version:
Flexible and type-safe data queries
19 lines • 933 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.IfExpression = void 0;
const evaluate_expression_1 = require("../helpers/evaluate-expression");
const data_type_1 = require("../types/data-type");
class IfExpression {
constructor(condition, thenExpression, elseExpression) {
this.condition = condition;
this.thenExpression = thenExpression;
this.elseExpression = elseExpression;
this.dataType = (0, data_type_1.createUnion)(thenExpression.dataType, elseExpression.dataType);
}
evaluate(context) {
const condition = !!(0, evaluate_expression_1.evaluateExpression)(this.condition, context);
return condition ? (0, evaluate_expression_1.evaluateExpression)(this.thenExpression, context) : (0, evaluate_expression_1.evaluateExpression)(this.elseExpression, context);
}
}
exports.IfExpression = IfExpression;
//# sourceMappingURL=if.js.map