UNPKG

@medusajs/event-bus-local

Version:

Local Event Bus Module for Medusa

28 lines 1.49 kB
import { EventBusTypes, InternalModuleDeclaration, Logger, MedusaContainer, Message, Subscriber } from "@medusajs/framework/types"; import { AbstractEventBusModuleService } from "@medusajs/framework/utils"; import { EventEmitter } from "events"; type InjectedDependencies = { logger: Logger; }; type StagingQueueType = Map<string, Message[]>; export default class LocalEventBusService extends AbstractEventBusModuleService { protected readonly logger_?: Logger; protected readonly eventEmitter_: EventEmitter; protected groupedEventsMap_: StagingQueueType; constructor({ logger }: MedusaContainer & InjectedDependencies, moduleOptions: {} | undefined, moduleDeclaration: InternalModuleDeclaration); /** * Accept an event name and some options * * @param eventsData * @param options The options can include `internal` which will prevent the event from being logged */ emit<T = unknown>(eventsData: Message<T> | Message<T>[], options?: Record<string, unknown>): Promise<void>; private groupOrEmitEvent; private groupEvent; releaseGroupedEvents(eventGroupId: string): Promise<void>; clearGroupedEvents(eventGroupId: string): Promise<void>; subscribe(event: string | symbol, subscriber: Subscriber, context?: EventBusTypes.SubscriberContext): this; unsubscribe(event: string | symbol, subscriber: Subscriber, context: EventBusTypes.SubscriberContext): this; } export {}; //# sourceMappingURL=event-bus-local.d.ts.map