nodejs-event-driven
Version:
NodeJS agnostic event driven with EventEmitter support
32 lines (31 loc) • 1.33 kB
TypeScript
import type { BaseEventBusServiceBuilder } from '@main/domain/event-bus/base-event-bus.service.js';
import { EventEmitterBusService } from '@main/infra/event-bus/event-emitter/event-emitter-bus.service.js';
import type { Logger } from '@main/util/logger.js';
export type KafkaEventBusServiceConfig = {
brokers?: string[];
clientId?: string;
logger?: Logger;
topicPrefix?: string;
};
export declare enum LogLevel {
ERROR = 1,
WARN = 2,
INFO = 4,
DEBUG = 5
}
export declare const ERROR_MESSAGE_NOT_INITIALIZED = "Kafka is not initialized!";
export declare class KafkaEventBusService<E extends string = string> extends EventEmitterBusService<E> {
#private;
static readonly DEFAULT_CLIENT_ID: 'app';
static readonly DEFAULT_URL = "localhost:9092";
constructor(config: KafkaEventBusServiceConfig);
getTopic(eventName: E): string;
on<T>(eventName: E, listener: (data: T) => void): void;
once<T>(eventName: E, listener: (data: T) => void): void;
off(eventName: E): void;
send(eventName: E, data?: unknown): void;
start(): Promise<void>;
stop(): Promise<void>;
}
export type KafkaEventBusServiceBuilder = BaseEventBusServiceBuilder<KafkaEventBusServiceConfig, KafkaEventBusService>;
export declare const createKafkaEventBusService: KafkaEventBusServiceBuilder;