73 lines
2.8 KiB
TypeScript
Executable File
73 lines
2.8 KiB
TypeScript
Executable File
import { IncomingMessage, Server, ServerOptions, ServerResponse, createServer } from "node:http";
|
|
import { Http2SecureServer, Http2Server, Http2ServerRequest, Http2ServerResponse, SecureServerOptions, ServerOptions as ServerOptions$1, createSecureServer, createServer as createServer$1 } from "node:http2";
|
|
import { UpgradeWebSocket } from "hono/ws";
|
|
import { AddressInfo } from "node:net";
|
|
import { WebSocket, WebSocketServer } from "ws";
|
|
import { ServerOptions as ServerOptions$2, createServer as createServer$2 } from "node:https";
|
|
|
|
//#region src/types.d.ts
|
|
type HttpBindings = {
|
|
incoming: IncomingMessage;
|
|
outgoing: ServerResponse;
|
|
};
|
|
type Http2Bindings = {
|
|
incoming: Http2ServerRequest;
|
|
outgoing: Http2ServerResponse;
|
|
};
|
|
type FetchCallback = (request: Request, env: HttpBindings | Http2Bindings) => Promise<unknown> | unknown;
|
|
type ServerType = Server | Http2Server | Http2SecureServer;
|
|
type createHttpOptions = {
|
|
serverOptions?: ServerOptions;
|
|
createServer?: typeof createServer;
|
|
};
|
|
type createHttpsOptions = {
|
|
serverOptions?: ServerOptions$2;
|
|
createServer?: typeof createServer$2;
|
|
};
|
|
type createHttp2Options = {
|
|
serverOptions?: ServerOptions$1;
|
|
createServer?: typeof createServer$1;
|
|
};
|
|
type createSecureHttp2Options = {
|
|
serverOptions?: SecureServerOptions;
|
|
createServer?: typeof createSecureServer;
|
|
};
|
|
type ServerOptions$3 = createHttpOptions | createHttpsOptions | createHttp2Options | createSecureHttp2Options;
|
|
type Options = {
|
|
fetch: FetchCallback;
|
|
overrideGlobalObjects?: boolean;
|
|
autoCleanupIncoming?: boolean;
|
|
port?: number;
|
|
hostname?: string;
|
|
websocket?: {
|
|
server: WebSocketServer;
|
|
};
|
|
} & ServerOptions$3;
|
|
type CustomErrorHandler = (err: unknown) => void | Response | Promise<void | Response>;
|
|
//#endregion
|
|
//#region src/server.d.ts
|
|
declare const createAdaptorServer: (options: Options) => ServerType;
|
|
declare const serve: (options: Options, listeningListener?: (info: AddressInfo) => void) => ServerType;
|
|
//#endregion
|
|
//#region src/websocket.d.ts
|
|
type UpgradeWebSocketOptions = {
|
|
onError: (err: unknown) => void;
|
|
};
|
|
declare const upgradeWebSocket: UpgradeWebSocket<WebSocket, UpgradeWebSocketOptions>;
|
|
//#endregion
|
|
//#region src/listener.d.ts
|
|
declare const getRequestListener: (fetchCallback: FetchCallback, options?: {
|
|
hostname?: string;
|
|
errorHandler?: CustomErrorHandler;
|
|
overrideGlobalObjects?: boolean;
|
|
autoCleanupIncoming?: boolean;
|
|
}) => (incoming: IncomingMessage | Http2ServerRequest, outgoing: ServerResponse | Http2ServerResponse) => Promise<void>;
|
|
//#endregion
|
|
//#region src/error.d.ts
|
|
declare class RequestError extends Error {
|
|
constructor(message: string, options?: {
|
|
cause?: unknown;
|
|
});
|
|
}
|
|
//#endregion
|
|
export { type Http2Bindings, type HttpBindings, RequestError, type ServerType, createAdaptorServer, getRequestListener, serve, upgradeWebSocket }; |