@gooddata/gooddata-js
Version:
GoodData JavaScript SDK
28 lines (27 loc) • 1.04 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
// (C) 2007-2018 GoodData Corporation
var invariant_1 = __importDefault(require("invariant"));
var find_1 = __importDefault(require("lodash/find"));
var every_1 = __importDefault(require("lodash/every"));
var Rules = /** @class */ (function () {
function Rules() {
this.rules = [];
}
Rules.prototype.addRule = function (tests, callback) {
this.rules.push([tests, callback]);
};
Rules.prototype.match = function (subject, params) {
var _a = find_1.default(this.rules, function (_a) {
var tests = _a[0];
return every_1.default(tests, function (test) { return test(subject, params); });
}), callback = _a[1];
invariant_1.default(callback, "Callback not found :-(");
return callback;
};
return Rules;
}());
exports.Rules = Rules;