@bernierllc/nevar-trigger-registry
v0.1.0
Published
Trigger registry with payload validation for the Nevar rules engine
Readme
@bernierllc/nevar-trigger-registry
Trigger registry with payload validation for the Nevar rules engine.
Overview
Manages trigger type definitions, payload validation, and discovery. Normalizes Zod and JSON Schema to Zod internally for consistent validation.
Installation
npm install @bernierllc/nevar-trigger-registryUsage
import { TriggerRegistry } from '@bernierllc/nevar-trigger-registry';
import { z } from 'zod';
const registry = new TriggerRegistry();
// Register with Zod schema
registry.register('user.created', {
payloadSchema: z.object({
userId: z.string(),
email: z.string().email(),
}),
description: 'Fires when a new user is created',
category: 'user',
});
// Register with JSON Schema
registry.register('order.placed', {
payloadSchema: {
type: 'object',
properties: {
orderId: { type: 'string' },
total: { type: 'number' },
},
required: ['orderId', 'total'],
},
description: 'Fires when an order is placed',
category: 'commerce',
});
// Validate payloads
registry.validate('user.created', { userId: '123', email: '[email protected]' });
// Query triggers
const userTriggers = registry.getByCategory('user');
const allTriggers = registry.list();
const exists = registry.has('user.created');
const definition = registry.get('user.created');API
TriggerRegistry
register(key, definition)- Register a trigger with Zod or JSON Schema payload validationvalidate(key, payload)- Validate a payload against a registered triggerget(key)- Get a trigger definition by keyhas(key)- Check if a trigger is registeredlist()- List all registered triggersgetByCategory(category)- Get triggers by category
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.
