@fanoutio/serve-grip
Version:
Connect-style Middleware for GRIP
36 lines • 1.8 kB
TypeScript
import CallableInstance from 'callable-instance';
import { GripInstruct, IGripConfig, Publisher, WebSocketContext } from '@fanoutio/grip';
import { IServeGripConfig } from './IServeGripConfig.js';
import type { IRequestGrip } from "./IRequestGrip.js";
import type { IResponseGrip } from "./IResponseGrip.js";
export type OnAfterSetupParams<TRequest, TResponse> = {
req: TRequest;
res: TResponse;
wsContext: WebSocketContext | null;
gripInstructGetter: () => GripInstruct | null;
};
type NextFunction = (e?: Error) => void;
export declare abstract class ServeGripBase<TRequest, TResponse> extends CallableInstance<[TRequest, TResponse, NextFunction], void> {
gripProxies?: string | IGripConfig | IGripConfig[] | Publisher;
prefix: string;
isGripProxyRequired: boolean;
_publisherClass?: {
new (): Publisher;
};
_publisher?: Publisher;
protected constructor(config?: IServeGripConfig, fn?: string);
applyConfig(config?: IServeGripConfig): void;
getPublisher(): Publisher;
abstract getRequestGrip(req: TRequest): IRequestGrip | undefined;
abstract setRequestGrip(req: TRequest, grip: IRequestGrip): void;
abstract isRequestWsOverHttp(req: TRequest): boolean;
abstract getRequestWebSocketContext(req: TRequest): Promise<WebSocketContext>;
abstract getRequestHeaderValue(req: TRequest, key: string): string | undefined;
abstract setResponseGrip(res: TResponse, grip: IResponseGrip): void;
abstract setResponseStatus(res: TResponse, code: number): void;
abstract endResponse(res: TResponse, chunk: string): TResponse;
abstract onAfterSetup(params: OnAfterSetupParams<TRequest, TResponse>): void;
run(req: TRequest, res: TResponse): Promise<boolean>;
}
export {};
//# sourceMappingURL=ServeGripBase.d.ts.map