@schoenbergerb/logical-expression-parser
Version:
Logical expression parser and evaluates result, suitable for permissions management
22 lines • 994 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.nodeEvaluator = void 0;
const token_type_1 = require("./token-type");
const nodeEvaluator = (node, literalEvaluator, entities) => {
if (node?.literal) {
return literalEvaluator(node.literal, entities);
}
if (node?.op === token_type_1.Token.OPERATOR_NOT) {
return !(0, exports.nodeEvaluator)(node?.left, literalEvaluator, entities);
}
if (node?.op === token_type_1.Token.OPERATOR_OR) {
return ((0, exports.nodeEvaluator)(node?.left, literalEvaluator, entities) ||
(0, exports.nodeEvaluator)(node?.right, literalEvaluator, entities));
}
if (node?.op === token_type_1.Token.OPERATOR_AND) {
return ((0, exports.nodeEvaluator)(node?.left, literalEvaluator, entities) &&
(0, exports.nodeEvaluator)(node?.right, literalEvaluator, entities));
}
};
exports.nodeEvaluator = nodeEvaluator;
//# sourceMappingURL=node-evaluator.js.map