@camar/http
Version:
To use __superconductor__ you need to build sources by `yarn build`
18 lines (17 loc) • 1.13 kB
TypeScript
/// <reference types="node" />
import * as http from 'http';
import Layer from './layer';
import { IRequest, IResponse, ILayer, ContextResolver, Middleware, IController } from './types';
export default class Server<TContext = undefined> implements ILayer<IRequest<any, any>, IResponse, TContext> {
private readonly _router;
private readonly _currentContext;
private readonly _defaultLayer;
private readonly _server;
constructor(context?: TContext);
listen(port: number): Promise<void>;
context<TNewContext>(resolver: ContextResolver<TContext, TNewContext>): Layer<IRequest<any, any>, IResponse, TNewContext>;
middleware<MRequest extends IRequest<any, any> = IRequest<any, any>, MResponse extends IResponse = IResponse>(middleware: Middleware<TContext, IRequest<any, any>, IResponse, MRequest, MResponse>): Layer<MRequest, MResponse, TContext>;
route<LRequest extends IRequest<any, any>, LResponse extends IResponse>(template: string, method?: 'GET' | 'POST' | 'PATCH' | 'PUT' | 'DELETE'): IController<LRequest, LResponse, TContext>;
get server(): http.Server;
close(): Promise<void>;
}