@bernierllc/nevar-action-registry
v0.1.0
Published
Action handler registration and config validation for the Nevar rules engine
Readme
@bernierllc/nevar-action-registry
Action handler registration and config validation for the Nevar rules engine.
Overview
nevar-action-registry manages action handler definitions: registration, lookup, and configuration validation. It does not execute actions — that responsibility belongs to @bernierllc/nevar-action-executor.
Installation
npm install @bernierllc/nevar-action-registryUsage
import { ActionRegistry } from '@bernierllc/nevar-action-registry';
import { z } from 'zod';
const registry = new ActionRegistry();
// Register an action handler
registry.register('send-email', {
label: 'Send Email',
category: 'notifications',
configSchema: z.object({
to: z.string().email(),
subject: z.string().min(1),
body: z.string(),
}),
canDefer: false,
handler: async (config, context, priorResults) => {
// Action execution logic (used by nevar-action-executor)
return { sent: true };
},
});
// Validate config before execution
registry.validateConfig('send-email', {
to: '[email protected]',
subject: 'Hello',
body: 'World',
});
// List registered actions
const actions = registry.list();
// [{ actionType: 'send-email', label: 'Send Email', category: 'notifications', canDefer: false }]
// Filter by category
const notifications = registry.getByCategory('notifications');API
register(actionType, definition)
Register an action handler definition. Throws NevarValidationError on duplicate.
get(actionType)
Returns the full ActionHandlerDefinition or undefined.
has(actionType)
Returns true if the action type is registered.
validateConfig(actionType, config)
Validates config against the action's Zod schema. Throws NevarValidationError with validation details on failure.
list()
Returns all registered actions as serializable entries (without handler function).
getByCategory(category)
Filters registered actions 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.
