@clipboard-health/rules-engine
Version:
A pure functional rules engine to keep logic-dense code simple, reliable, understandable, and explainable.
17 lines • 506 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.all = all;
/**
* Run all rules that return true for `runIf`.
*
* @param rules The rules to run.
*/
function all(...rules) {
return {
runIf: (input) => rules.some((rule) => rule.runIf(input)),
run: (context) => rules
.filter((rule) => rule.runIf(context.input))
.reduce((previousContext, rule) => rule.run(previousContext), context),
};
}
//# sourceMappingURL=all.js.map