UNPKG

@clipboard-health/rules-engine

Version:

A pure functional rules engine to keep logic-dense code simple, reliable, understandable, and explainable.

17 lines (16 loc) 757 B
import { type Rule, type 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: Array<Rule<TInput, TOutput, TContext>>): Rule<TInput, TOutput, TContext>;