UNPKG

ruls

Version:

Typesafe rules engine with JSON encoding

13 lines (12 loc) 634 B
import type { SignalSet } from '../signals'; import type { EncodedRule } from './rule'; import Rule from './rule'; export type EncodedGroupRule<TContext> = { [operator: string]: Array<EncodedRule<TContext>>; }; export default class GroupRule<TContext> extends Rule<TContext> { protected operator: (context: Array<TContext>, rules: Array<Rule<TContext>>) => Promise<boolean>; protected rules: Array<Rule<TContext>>; constructor(operator: (context: Array<TContext>, rules: Array<Rule<TContext>>) => Promise<boolean>, rules: Array<Rule<TContext>>); encode(signals: SignalSet<TContext>): EncodedGroupRule<TContext>; }