feat: add adapter factory + registry pattern for queue, storage, memory

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Jarvis
2026-04-02 20:25:42 -05:00
parent 41961a6980
commit 9d22ef4cc9
6 changed files with 57 additions and 0 deletions

View File

@@ -0,0 +1,18 @@
import type { QueueAdapter, QueueConfig } from './types.js';
type QueueType = QueueConfig['type'];
const registry = new Map<QueueType, (config: QueueConfig) => QueueAdapter>();
export function registerQueueAdapter(
type: QueueType,
factory: (config: QueueConfig) => QueueAdapter,
): void {
registry.set(type, factory);
}
export function createQueueAdapter(config: QueueConfig): QueueAdapter {
const factory = registry.get(config.type);
if (!factory) throw new Error(`No adapter registered for type: ${config.type}`);
return factory(config);
}

View File

@@ -8,3 +8,4 @@ export {
} from './queue.js';
export { type QueueAdapter, type QueueConfig as QueueAdapterConfig } from './types.js';
export { createQueueAdapter, registerQueueAdapter } from './factory.js';