-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathAPI.ts
42 lines (30 loc) · 824 Bytes
/
API.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import { Expression , Condition } from "./Expression";
import { DecisionTable, HIT_POLICY } from "./DecisionTable";
api();
function api() {
const context = { name:'John',job: 'Analyst', salary: 50000};
let exprResult,condResult,ruleOutput, dtOutput;
const expr=new Expression(`salary* 1.05`);
console.log(expr.evaluate(context));
const cond=new Condition(`>40000`,'salary');
console.log(cond.evaluate(context));
const decisionTable = new DecisionTable(
{
name: 'Raise',
conditionVars:[
// ['name','string'],
['job','string'],
['salary','money']
],
actionVars: [
['raise','money']
],
rules: [
[1,'-',`>40000`,`salary *1.05`],
[2,'-',`>30000`,`salary *1.1`]
],
hitPolicy: HIT_POLICY.Unique});
dtOutput = decisionTable.evaluate(context);
console.log(dtOutput);
}
/* */