UNPKG

webserv

Version:

a quick, flexible, fully typed development server

29 lines (28 loc) 1.41 kB
/// <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>; }