UNPKG

@remediator/core

Version:
20 lines (19 loc) 1.15 kB
import type { IRequest, IRequestHandler, Pipeline } from "./types"; /** * Simple mediator with two overloads: * 1) Pass an instance: send(instance, request, [middleware]) * 2) Pass any-ctor + data: send(Ctor, data, request, [middleware]) */ export declare class reMediator { private handlers; private pipelines; /** Register a request constructor and its handler */ register<TRequest extends IRequest<TResponse>, TResponse>(RequestCtor: new (...args: any[]) => TRequest, handler: IRequestHandler<TRequest, TResponse>): void; /** Add a middleware pipeline function */ use(pipeline: Pipeline): void; send<TRequest extends IRequest<any>>(ctor: new (...args: any[]) => TRequest, data: Partial<TRequest>, rawRequest: Request, middleware?: Pipeline[]): Promise<TRequest extends IRequest<infer TResponse> ? TResponse : unknown>; send<TRequest extends IRequest<any>>(instance: TRequest, rawRequest: Request, middleware?: Pipeline[]): Promise<TRequest extends IRequest<infer TResponse> ? TResponse : unknown>; private castValue; } export declare const reMediatorInstance: reMediator; export default reMediatorInstance;