UNPKG

js-rules-engine

Version:

JavaScript rules engine for validating data object structures.

61 lines 2 kB
"use strict"; var __spreadArrays = (this && this.__spreadArrays) || function () { for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j]; return r; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Engine = void 0; var default_operators_1 = require("./default-operators"); /** * Engine. */ var Engine = /** @class */ (function () { function Engine() { /** * Registered operators. */ this.operators = []; this.operators = __spreadArrays(default_operators_1.defaultOperators); } /** * Get operator by name. * * @param name Operator name. */ Engine.prototype.getOperator = function (name) { var operator = this.operators.find(function (item) { return item.name === name; }); if (!operator) { throw new Error("Engine: operator \"" + name + "\" not found"); } return operator; }; /** * Add an operator. * * @param operator Operator to add. */ Engine.prototype.addOperator = function (operator) { var exists = this.operators.some(function (item) { return item.name === operator.name; }); if (exists) { throw new Error("Engine: operator \"" + operator.name + "\" already exists"); } this.operators.push(operator); }; /** * Remove an operator by name. * * @param name Operator name. */ Engine.prototype.removeOperator = function (name) { var index = this.operators.findIndex(function (item) { return item.name === name; }); if (index !== -1) { this.operators.splice(index, 1); } }; return Engine; }()); exports.Engine = Engine; //# sourceMappingURL=engine.js.map