@luvies/business-rules
Version:
A JS-expression-based rules engine
36 lines • 990 B
TypeScript
import { ExpressionReturnType, TypeMap } from '@luvies/evaluator';
export interface Rule {
expression: string;
context?: TypeMap;
}
export interface RuleResult {
id: string;
rule: Rule;
value?: ExpressionReturnType;
activated?: boolean;
error?: Error;
}
export interface RuleResults {
results: Map<string, ExpressionReturnType>;
activated: string[];
deactivated: string[];
errors: Map<string, Error>;
}
export interface RulesOptions {
previous?: Map<string, ExpressionReturnType>;
aliases?: Map<string, string>;
}
export declare class Rules {
aliases: Map<string, string>;
private _context;
private _previous?;
private _rules;
constructor(context?: TypeMap, options?: RulesOptions);
set(id: string, rule: Rule): this;
get(id: string): Rule | undefined;
has(id: string): boolean;
delete(id: string): boolean;
eval(): Promise<RuleResults>;
private _evalRule;
}
//# sourceMappingURL=rules.d.ts.map