@camar/http
Version:
To use __superconductor__ you need to build sources by `yarn build`
15 lines (14 loc) • 1.34 kB
TypeScript
import { Middleware, IRequest, RequestMethod, IResponse, ILayer, IController, RouteHandler, ContextResolver } from './types';
import Router from './router';
export default class Layer<TRequest extends IRequest<any, any>, TResponse extends IResponse, TContext> implements ILayer<TRequest, TResponse, TContext> {
private readonly router;
private readonly previous;
private readonly _middleware;
private contextResolver;
constructor(router: Router, previous: Layer<any, any, any>, _middleware: Middleware<TContext, any, any, TRequest, TResponse>, contextResolver: ContextResolver<void, TContext>);
chain(handler: RouteHandler<TRequest, TResponse, TContext>): RouteHandler<IRequest<any, any>, IResponse, void>;
register(template: string, handler: RouteHandler<TRequest, TResponse, TContext>, method: RequestMethod): void;
context<TNewContext>(resolver: ContextResolver<TContext, TNewContext>): Layer<TRequest, TResponse, TNewContext>;
middleware<MRequest extends IRequest<any, any> = TRequest, MResponse extends IResponse = TResponse>(middleware: Middleware<TContext, TRequest, TResponse, MRequest, MResponse>): Layer<MRequest, MResponse, TContext>;
route<LRequest extends TRequest, LResponse extends TResponse>(template: string, method?: RequestMethod): IController<LRequest, LResponse, TContext>;
}