UNPKG

1.29 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3const utils_1 = require("./utils");
4const enumerations_1 = require("./enumerations");
5class Rule {
6 constructor(rule) {
7 this.id = rule.id;
8 this.name = rule.name;
9 this.label = rule.label || rule.name.replace(/([A-Z_])/g, ' $1').trim();
10 this.description = rule.description;
11 this.statedAs = rule.statedAs;
12 this.aliases = rule.aliases;
13 this.dataType = rule.dataType || enumerations_1.DataTypeEnum.String;
14 this.sampleValue = rule.sampleValue;
15 }
16 expectedFacts() {
17 if (this.statedAs !== undefined) {
18 return utils_1.extractUndeclaredVarsFromCode(this.statedAs);
19 }
20 return [];
21 }
22 getRule() {
23 utils_1.assert(!!this.statedAs, `This rule hasn't been stated`, `FACT-01`);
24 let code = this.statedAs || "";
25 if ((code.indexOf("theResultIs") === -1)) {
26 utils_1.assert(code.trim().split(";").length <= 1, `When using multiple statements, please use theResultIs.`, `FACT-02`);
27 return utils_1.formatCode(`theResultIs(${code})`);
28 }
29 else {
30 return utils_1.formatCode(code);
31 }
32 }
33}
34exports.Rule = Rule;
35//# sourceMappingURL=rule.js.map
\No newline at end of file