21 lines
785 B
TypeScript
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;
|
||
|
}
|
||
|
}
|