@furystack/rest-service
Version:
Repository implementation for FuryStack
31 lines • 988 B
TypeScript
import { EventHub } from '@furystack/utils';
import type { IncomingMessage, Server, ServerResponse } from 'http';
export interface ServerOptions {
hostName?: string;
port: number;
}
export interface OnRequest {
req: IncomingMessage;
res: ServerResponse;
}
export interface ServerApi {
shouldExec: (options: OnRequest) => boolean;
onRequest: (options: OnRequest) => Promise<void>;
}
export interface ServerRecord {
server: Server;
apis: ServerApi[];
}
export declare class ServerManager extends EventHub<{
onRequestFailed: [unknown, IncomingMessage, ServerResponse<IncomingMessage>];
}> implements AsyncDisposable {
static DEFAULT_HOST: string;
servers: Map<string, ServerRecord>;
private openedSockets;
private readonly listenLock;
private getHostUrl;
private onConnection;
[Symbol.asyncDispose](): Promise<void>;
getOrCreate(options: ServerOptions): Promise<ServerRecord>;
}
//# sourceMappingURL=server-manager.d.ts.map