@fanoutio/serve-grip
Version:
Connect-style Middleware for GRIP
33 lines • 1.81 kB
TypeScript
import { type IncomingMessage, type ServerResponse } from 'node:http';
import { GripInstruct, WebSocketContext } from '@fanoutio/grip';
import { type IRequestGrip } from '../IRequestGrip.js';
import { type IResponseGrip } from '../IResponseGrip.js';
import { type IServeGripConfig } from '../IServeGripConfig.js';
import { type OnAfterSetupParams, ServeGripBase } from '../ServeGripBase.js';
declare module 'node:http' {
interface IncomingMessage {
grip?: IRequestGrip;
}
interface ServerResponse {
grip?: IResponseGrip;
}
}
type NextFunction = (e?: Error) => void;
export declare class ServeGrip extends ServeGripBase<IncomingMessage, ServerResponse> {
koa: (ctx: any, next: () => Promise<void>) => Promise<void>;
constructor(config?: IServeGripConfig, fn?: string);
exec(req: IncomingMessage, res: ServerResponse, fn: NextFunction): void;
getRequestGrip(req: IncomingMessage): IRequestGrip | undefined;
setRequestGrip(req: IncomingMessage, grip: IRequestGrip): void;
isRequestWsOverHttp(req: IncomingMessage): boolean;
getRequestWebSocketContext(req: IncomingMessage): Promise<WebSocketContext>;
getRequestHeaderValue(req: IncomingMessage, key: string): string | undefined;
setResponseGrip(res: ServerResponse, grip: IResponseGrip): void;
setResponseStatus(res: ServerResponse, code: number): void;
endResponse(res: ServerResponse, chunk: string): ServerResponse<IncomingMessage>;
onAfterSetup(params: OnAfterSetupParams<IncomingMessage, ServerResponse>): void;
monkeyPatchResMethodsForWebSocket(res: ServerResponse, wsContext: WebSocketContext): void;
monkeyPatchResMethodsForGripInstruct(res: ServerResponse, gripInstructGetter: () => GripInstruct | null): void;
}
export {};
//# sourceMappingURL=ServeGrip.d.ts.map