webserv
Version:
a quick, flexible, fully typed development server
16 lines (15 loc) • 618 B
TypeScript
/// <reference types="node" />
import { IncomingMessage } from 'http';
import { Socket, Server } from 'net';
export interface ServerConfig<T extends Server = Server> {
port: number;
createServer(): Promise<T>;
onUpgrade?(request: IncomingMessage, socket: Socket, head: Buffer): void;
onError?(error: Error): void;
}
export interface ServerControls {
closed: Promise<unknown>;
addListener: (event: string, listener: () => void) => void;
stop(): Promise<void>;
}
export declare function startServer<T extends Server = Server>(config: ServerConfig<T>): Promise<ServerControls>;