rjweb-server
Version:
Easy and Robust Way to create a Web Server with Many Easy-to-use Features in NodeJS
24 lines (23 loc) • 2.93 kB
TypeScript
import { HttpRequest, WsConnect, WsMessage, WsClose } from "./external";
import { RealAny, EndFn, MiddlewareInitted, MergeObjects } from "./internal";
type HTTPRequest<Context extends Record<any, any>, Middlewares extends MiddlewareInitted[]> = (ctr: MergeObjects<[HttpRequest<Context, unknown>, InstanceType<Middlewares[number]['data']['classModifications']['http']>]>, end: EndFn) => RealAny;
type HTTPError<Context extends Record<any, any>, Middlewares extends MiddlewareInitted[]> = (ctr: MergeObjects<[HttpRequest<Context, unknown>, InstanceType<Middlewares[number]['data']['classModifications']['http']>]>, error: unknown) => RealAny;
type WSConnect<Context extends Record<any, any>, Middlewares extends MiddlewareInitted[]> = (ctr: MergeObjects<[WsConnect<Context, unknown>, InstanceType<Middlewares[number]['data']['classModifications']['wsConnect']>]>, end: EndFn) => RealAny;
type WSMessage<Context extends Record<any, any>, Middlewares extends MiddlewareInitted[]> = (ctr: MergeObjects<[WsMessage<Context, unknown>, InstanceType<Middlewares[number]['data']['classModifications']['wsMessage']>]>, end: EndFn) => RealAny;
type WSClose<Context extends Record<any, any>, Middlewares extends MiddlewareInitted[]> = (ctr: MergeObjects<[WsClose<Context, unknown>, InstanceType<Middlewares[number]['data']['classModifications']['wsClose']>]>, end: EndFn) => RealAny;
type WSConnectError<Context extends Record<any, any>, Middlewares extends MiddlewareInitted[]> = (ctr: MergeObjects<[WsConnect<Context, unknown>, InstanceType<Middlewares[number]['data']['classModifications']['wsConnect']>]>, error: unknown) => RealAny;
type WSMessageError<Context extends Record<any, any>, Middlewares extends MiddlewareInitted[]> = (ctr: MergeObjects<[WsMessage<Context, unknown>, InstanceType<Middlewares[number]['data']['classModifications']['wsMessage']>]>, error: unknown) => RealAny;
type WSCloseError<Context extends Record<any, any>, Middlewares extends MiddlewareInitted[]> = (ctr: MergeObjects<[WsClose<Context, unknown>, InstanceType<Middlewares[number]['data']['classModifications']['wsClose']>]>, error: unknown) => RealAny;
type Route404<Context extends Record<any, any>, Middlewares extends MiddlewareInitted[]> = (ctr: MergeObjects<[HttpRequest<Context, unknown>, InstanceType<Middlewares[number]['data']['classModifications']['http']>]>) => RealAny;
export type EventHandlerMap<Context extends Record<any, any>, Middlewares extends MiddlewareInitted[]> = {
httpRequest: HTTPRequest<Context, Middlewares>;
httpError: HTTPError<Context, Middlewares>;
wsConnect: WSConnect<Context, Middlewares>;
wsMessage: WSMessage<Context, Middlewares>;
wsClose: WSClose<Context, Middlewares>;
wsConnectError: WSConnectError<Context, Middlewares>;
wsMessageError: WSMessageError<Context, Middlewares>;
wsCloseError: WSCloseError<Context, Middlewares>;
route404: Route404<Context, Middlewares>;
};
export {};