smartrule/ts/smartrule.classes.rule.ts
2020-01-20 14:41:27 +00:00

21 lines
785 B
TypeScript

import * as plugins from './smartrule.plugins';
import { SmartRule } from './smartrule.classes.smartrule';
export type TTreeActionResult = 'continue' | 'apply-continue' | 'apply-stop' | 'stop';
export type TActionFunc = (objectArg) => Promise<any>;
export type TCheckFunc<T> = (objectArg: T) => Promise<TTreeActionResult>;
export class Rule<T> {
public smartRuleRef: SmartRule<T>;
public priority: number;
public checkFunction: TCheckFunc<T>;
public actionFunction: TActionFunc;
constructor(smartRuleRef: SmartRule<T>, priorityArg: number, checkFunctionArg: TCheckFunc<T>, actionFunctionArg: TActionFunc) {
this.smartRuleRef = smartRuleRef;
this.priority = priorityArg;
this.checkFunction = checkFunctionArg;
this.actionFunction = actionFunctionArg;
}
}