@clipboard-health/rules-engine
Version:
A pure functional rules engine to keep logic-dense code simple, reliable, understandable, and explainable.
17 lines (16 loc) • 747 B
TypeScript
import type { Rule, RuleContext } from "../rule";
/**
* Run all rules that return true for their runIf condition, but only when the predicate function returns true.
*
* @param allIfPredicate - Function that determines if rules should be evaluated
* @param rules - Array of rules to evaluate when predicate is true
* @returns A Rule that combines the behavior of all matching rules
*
* @example
* const rule = allIf(
* (input) => input.type === 'special',
* rule1,
* rule2
* );
*/
export declare function allIf<TInput, TOutput, TContext extends RuleContext<TInput, TOutput>>(allIfPredicate: (input: RuleContext<TInput, TOutput>["input"]) => boolean, ...rules: Rule<TInput, TOutput, TContext>[]): Rule<TInput, TOutput, TContext>;