@bernierllc/nevar-storage
v0.1.0
Published
Storage adapter interface and in-memory reference implementation for the Nevar rules engine
Readme
@bernierllc/nevar-storage
Storage adapter interface and in-memory reference implementation for the Nevar rules engine.
Installation
npm install @bernierllc/nevar-storageUsage
import { InMemoryStorageAdapter, createAdapterConformanceTests } from '@bernierllc/nevar-storage';
const adapter = new InMemoryStorageAdapter();
// Create a rule group
const group = await adapter.createGroup({
name: 'Production Rules',
slug: 'production-rules',
isActive: true,
isDefault: true,
rules: [],
metadata: { env: 'production' },
createdAt: new Date(),
updatedAt: new Date(),
});Adapter Conformance Tests
Use createAdapterConformanceTests to verify your custom adapter implementation:
import { createAdapterConformanceTests } from '@bernierllc/nevar-storage';
import { MyCustomAdapter } from './my-custom-adapter';
describe('MyCustomAdapter', () => {
createAdapterConformanceTests(() => new MyCustomAdapter());
});API
InMemoryStorageAdapter
In-memory reference implementation of NevarStorageAdapter. Suitable for testing, prototyping, and single-process deployments. Implements all CRUD operations for groups, rules, and execution logs.
createAdapterConformanceTests(factory)
Test suite factory that validates a custom storage adapter implementation against the NevarStorageAdapter contract. Pass a factory function that creates a fresh adapter instance.
makeGroupInput() / makeRuleInput() / makeLogEntry()
Helper functions for generating valid test fixtures for groups, rules, and execution log entries.
Re-exported Types
NevarStorageAdapter- Interface that all storage adapters must implementGroupFilters/RuleFilters/LogFilters- Filter types for list operationsPaginatedResult<T>- Paginated response wrapperExecutionLogEntry- Audit log entry shapeNevarStorageError- Error class for storage operation failures
Integration Documentation
Logger Integration
This package supports optional integration with @bernierllc/logger for structured logging. Storage adapters should log CRUD operations and errors through logger for observability into data access patterns and failure modes.
NeverHub Integration
This package supports optional integration with @bernierllc/neverhub-adapter. When NeverHub is available, storage adapters can register for discovery and health monitoring, exposing metrics like operation counts and error rates. Graceful degradation is supported when NeverHub is not present.
License
Copyright (c) 2025 Bernier LLC. All rights reserved.
