init project
This commit is contained in:
+101
@@ -0,0 +1,101 @@
|
||||
import { AddressInfo } from "node:net";
|
||||
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 { ServerOptions as ServerOptions$2, createServer as createServer$2 } from "node:https";
|
||||
import { Duplex } from "node:stream";
|
||||
import { UpgradeWebSocket } from "hono/ws";
|
||||
|
||||
//#region src/websocket-types.d.ts
|
||||
type WSReadyState = 0 | 1 | 2 | 3;
|
||||
type WebSocketData = string | ArrayBuffer | Uint8Array | readonly Uint8Array[];
|
||||
type WebSocketSendOptions = {
|
||||
compress?: boolean;
|
||||
};
|
||||
interface WebSocketLike {
|
||||
protocol: string;
|
||||
readyState: WSReadyState;
|
||||
close(code?: number, reason?: string): void;
|
||||
send(data: string | ArrayBuffer | ArrayBufferView, options?: WebSocketSendOptions): void;
|
||||
on(event: 'message', listener: (data: WebSocketData, isBinary: boolean) => void): this;
|
||||
on(event: 'close', listener: (code: number, reason: Uint8Array) => void): this;
|
||||
on(event: 'error', listener: (error: unknown) => void): this;
|
||||
off(event: 'message', listener: (data: WebSocketData, isBinary: boolean) => void): this;
|
||||
}
|
||||
interface WebSocketServerLike {
|
||||
options: {
|
||||
noServer?: boolean;
|
||||
};
|
||||
on(event: 'connection', listener: (ws: WebSocketLike, request: IncomingMessage) => void): this;
|
||||
on(event: 'headers', listener: (headers: string[]) => void): this;
|
||||
off(event: 'headers', listener: (headers: string[]) => void): this;
|
||||
emit(event: 'connection', ws: WebSocketLike, request: IncomingMessage): boolean;
|
||||
handleUpgrade(request: IncomingMessage, socket: Duplex, head: Buffer, callback: (ws: WebSocketLike) => void): void;
|
||||
close(): void;
|
||||
}
|
||||
//#endregion
|
||||
//#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: WebSocketServerLike;
|
||||
};
|
||||
} & 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<WebSocketLike, 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, type WebSocketData, type WebSocketLike, type WebSocketServerLike, createAdaptorServer, getRequestListener, serve, upgradeWebSocket };
|
||||
Reference in New Issue
Block a user