@sailboat-computer/event-bus
Version:
Standardized event bus for sailboat computer v3 with resilience features and offline capabilities
45 lines (37 loc) • 1.11 kB
text/typescript
/**
* Event bus package
*/
import { EventAdapter } from './types';
import { createMemoryAdapter, createRedisAdapter } from './adapters';
import { createEventBusWithAdapter } from './event-bus';
import { validateConfig } from './config';
// Export types
export * from './types';
export * from './errors';
export * from './metrics';
export * from './config';
export * from './utils';
export * from './adapters';
export * from './event-bus';
export * from './validation';
/**
* Create an event bus with the specified configuration
*
* @param config - Event bus configuration
* @returns Event bus instance
*/
export function createEventBus(config: any) {
const validatedConfig = validateConfig(config);
// Create adapter based on configuration
let adapter: EventAdapter;
if (validatedConfig.adapter.type === 'redis') {
// Create Redis adapter
adapter = createRedisAdapter();
} else {
// Default to memory adapter
adapter = createMemoryAdapter();
}
// Create event bus with adapter
const eventBus = createEventBusWithAdapter(adapter);
return eventBus;
}