UNPKG

@schoenbergerb/logical-expression-parser

Version:

Logical expression parser and evaluates result, suitable for permissions management

22 lines 994 B
"use strict"; 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