@tmorin/ceb-messaging-simple
Version:
The package is part of the `<ceb/>` library. It provides an implementation of the messaging model leveraging on a vanilla TypeScript/JavaScript environment.
16 lines (15 loc) • 863 B
TypeScript
import { Disposable, EmittableQueryBus, ExecuteActionOptions, ObservableQueryBus, Query, QueryBus, QueryHandler, Removable, Result } from "@tmorin/ceb-messaging-core";
/**
* The symbol used to register {@link SimpleQueryBus}.
*/
export declare const SimpleQueryBusSymbol: unique symbol;
export declare class SimpleQueryBus implements QueryBus, Disposable {
private readonly emitter;
private readonly handlers;
constructor(emitter: EmittableQueryBus, handlers?: Map<string, QueryHandler<any, any>>);
get observe(): ObservableQueryBus;
execute<R extends Result = Result, Q extends Query = Query>(query: Q, options?: Partial<ExecuteActionOptions>): Promise<R>;
handle<C extends Query = Query, R extends Result = Result>(queryType: string, handler: QueryHandler<C, R>): Removable;
dispose(): Promise<void>;
private resolveHandler;
}