@remediator/core
Version:
Remix/React Router 7 Mediator
20 lines (19 loc) • 1.15 kB
TypeScript
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;