@daiso-tech/core
Version:
The library offers flexible, framework-agnostic solutions for modern web applications, built on adaptable components that integrate seamlessly with popular frameworks like Next Js.
21 lines (20 loc) • 908 B
TypeScript
/**
* @module EventBus
*/
import type { IEventBus } from "../../event-bus/contracts/event-bus.contract.js";
import type { BaseEvent } from "../../event-bus/contracts/_shared.js";
/**
* The `IEventBusFactory` contract makes it easy to configure and switch between different {@link IEventBus | `IEventBus`} dynamically.
*
* IMPORT_PATH: `"@daiso-tech/core/event-bus/contracts"`
* @group Contracts
*/
export type IEventBusFactory<TAdapters extends string = string> = {
/**
* The `use` method will throw an error if you provide it unregisted adapter.
* If no default adapter is defined an error will be thrown by `use` method.
* @throws {UnregisteredAdapterError} {@link UnregisteredAdapterError}
* @throws {DefaultAdapterNotDefinedError} {@link DefaultAdapterNotDefinedError}
*/
use<TEvents extends BaseEvent = BaseEvent>(adapterName?: TAdapters): IEventBus<TEvents>;
};