@bernierllc/nevar-action-resolver
v0.1.0
Published
Resolves matched rules into an ordered list of action intents for the Nevar rules engine
Readme
@bernierllc/nevar-action-resolver
Resolves matched rules into an ordered list of action intents for the Nevar rules engine.
Installation
npm install @bernierllc/nevar-action-resolverUsage
import { resolve } from '@bernierllc/nevar-action-resolver';
import type { MatchedRule } from '@bernierllc/nevar-types';
const matchedRules: MatchedRule[] = [
{
rule: {
id: 'rule-1',
name: 'Welcome Email',
executionOrder: 1,
stopOnMatch: false,
actions: [
{ actionType: 'send-email', config: { to: '[email protected]' }, executionOrder: 1 },
{ actionType: 'log-event', config: { event: 'welcome' }, executionOrder: 2 },
],
// ... other rule fields
},
trace: [],
},
];
const intents = resolve(matchedRules);
// [
// { actionType: 'send-email', config: { to: '[email protected]' }, ruleId: 'rule-1', ruleName: 'Welcome Email' },
// { actionType: 'log-event', config: { event: 'welcome' }, ruleId: 'rule-1', ruleName: 'Welcome Email' },
// ]API
resolve(matchedRules)
Pure function that transforms matched rules into a flat, ordered array of ActionIntent objects.
- Sorts rules by
rule.executionOrderascending - Sorts each rule's actions by
executionOrderascending - Stops processing subsequent rules when
rule.stopOnMatch === true - Preserves retry configuration from action definitions
Parameters:
matchedRules: MatchedRule[]- Rules that matched during evaluation
Returns: ActionIntent[] - Ordered list of action intents ready for execution
Integration Documentation
Logger Integration
This package does not integrate with @bernierllc/logger. As a core package, logger integration is optional and not included by default. Consumers should handle logging at the service layer.
NeverHub Integration
This package does not integrate with @bernierllc/neverhub-adapter. As a core package, NeverHub integration is not applicable. NeverHub registration should be handled by service-layer packages that compose this package.
License
Copyright (c) 2025 Bernier LLC. All rights reserved.
