@bernierllc/nevar-context-builder
v0.1.0
Published
Builds flat key-value evaluation context from trigger payload and registered context providers for the Nevar rules engine
Downloads
213
Readme
@bernierllc/nevar-context-builder
Builds flat key-value evaluation context from trigger payload and registered context providers for the Nevar rules engine.
Installation
npm install @bernierllc/nevar-context-builderUsage
import { ContextBuilder } from '@bernierllc/nevar-context-builder';
const builder = new ContextBuilder();
// Register a context provider
builder.registerProvider('user', async (payload) => {
const userId = payload.userId as string;
return { name: 'Alice', role: 'admin' };
});
// Build context from trigger payload
const context = await builder.build('order.created', { orderId: '123', userId: 'u1' }, ['user.name', 'user.role']);
// Result:
// {
// 'trigger.key': 'order.created',
// 'trigger.orderId': '123',
// 'trigger.userId': 'u1',
// 'user.name': 'Alice',
// 'user.role': 'admin'
// }API
ContextBuilder
Builds flat key-value evaluation context from trigger payloads and registered context providers. Providers are only invoked when their prefix appears in the required fields list.
Constructor: new ContextBuilder()
registerProvider(prefix, providerFn)- Registers a context provider under a prefix. The"trigger"prefix is reserved. ThrowsNevarEvaluationErroron empty prefix, reserved prefix, or duplicate registrationbuild(triggerKey, payload, requiredFields)- Builds the evaluation context. Auto-prefixes payload fields withtrigger.*, setstrigger.key, and invokes only the providers whose prefixes appear inrequiredFields. ReturnsPromise<Record<string, unknown>>listProviders()- Returns array of registered provider prefixeshasProvider(prefix)- Returnstrueif a provider is registered under the given prefix
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.
