1 | "use strict";
|
2 | var __importDefault = (this && this.__importDefault) || function (mod) {
|
3 | return (mod && mod.__esModule) ? mod : { "default": mod };
|
4 | };
|
5 | Object.defineProperty(exports, "__esModule", { value: true });
|
6 |
|
7 | var invariant_1 = __importDefault(require("invariant"));
|
8 | var find_1 = __importDefault(require("lodash/find"));
|
9 | var every_1 = __importDefault(require("lodash/every"));
|
10 | var Rules = (function () {
|
11 | function Rules() {
|
12 | this.rules = [];
|
13 | }
|
14 | Rules.prototype.addRule = function (tests, callback) {
|
15 | this.rules.push([tests, callback]);
|
16 | };
|
17 | Rules.prototype.match = function (subject, params) {
|
18 | var _a = find_1.default(this.rules, function (_a) {
|
19 | var tests = _a[0];
|
20 | return every_1.default(tests, function (test) { return test(subject, params); });
|
21 | }), callback = _a[1];
|
22 | invariant_1.default(callback, "Callback not found :-(");
|
23 | return callback;
|
24 | };
|
25 | return Rules;
|
26 | }());
|
27 | exports.Rules = Rules;
|