webserv
Version:
a quick, flexible, fully typed development server
29 lines (28 loc) • 1.41 kB
TypeScript
/// <reference types="node" />
import { ServerResponse } from 'http';
import { Route, RouteDescriptor, Upgrade, UpgradeDescriptor } from './interface';
import { StartHttpConfig } from './servers/createHttpServer';
import { StartHttpsConfig } from './servers/createHttpsServer';
import { ServerControls } from './servers/startServer';
export declare type ErrorRequestHandler = (error: any, response: ServerResponse) => void;
export declare type HttpConfig = Omit<StartHttpConfig, 'onRequest' | 'onUpgrade'>;
export declare type HttpsConfig = Omit<StartHttpsConfig, 'onRequest' | 'onUpgrade'>;
export interface Service {
global?: Omit<RouteDescriptor, 'middleware'>;
route?: RouteDescriptor;
upgrade?: UpgradeDescriptor;
}
export declare type GlobalRoute = RouteDescriptor & {
middleware: Route[];
};
export declare const globalErrorHandler: ErrorRequestHandler;
export declare class App {
readonly globalRoute: GlobalRoute;
readonly upgrades: Upgrade[];
protected controls?: Promise<ServerControls>;
add(services: Service | Service[]): void;
protected addService({ route, upgrade, global }: Service): void;
start(type: 'https', config: HttpsConfig): Promise<ServerControls>;
start(type: 'http', config: HttpConfig): Promise<ServerControls>;
start(type: 'http' | 'https', config: HttpsConfig | HttpConfig): Promise<ServerControls>;
}