UNPKG

@yandex-cloud/function-types

Version:

TypeScript typings for Serverless Functions in Yandex.Cloud

55 lines (54 loc) 1.88 kB
import type { Http } from "../http"; export declare type ConnectEvent = Common<ConnectHeaders> & { httpMethod: Http.Event["httpMethod"]; requestContext: RequestContext<"CONNECT">; }; export declare type MessageEvent = Common<MessageHeaders> & { body: string; isBase64Encoded: boolean; requestContext: RequestContext<"MESSAGE"> & { messageId: string; }; }; export declare type DisconnectEvent = Common<DisconnectHeaders> & { httpMethod: Http.Event["httpMethod"]; requestContext: RequestContext<"DISCONNECT"> & { disconnectStatusCode: number; }; }; declare type Common<Headers extends Record<string, string>> = { resource: string; path: string; pathParameters: Record<string, string>; headers: Headers; multiValueHeaders: { [K in keyof Headers]: Headers[K][]; }; parameters: Record<string, string>; multiValueParameters: Record<string, string[]>; operationId: string; }; interface ConnectHeaders extends Headers { "X-Yc-Apigateway-Websocket-Event-Type": 'CONNECT'; } interface MessageHeaders extends Headers { "X-Yc-Apigateway-Websocket-Event-Type": 'MESSAGE'; "X-Yc-Apigateway-Websocket-Message-Id": string; } interface DisconnectHeaders extends Headers { "X-Yc-Apigateway-Websocket-Event-Type": 'DISCONNECT'; "X-Yc-Apigateway-Websocket-Disconnect-Reason": string; "X-Yc-Apigateway-Websocket-Disconnect-Status-Code": string; } declare type Headers = { "X-Yc-Apigateway-Websocket-Connected-At": string; "X-Yc-Apigateway-Websocket-Connection-Id": string; "X-Yc-Apigateway-Websocket-Event-Type": EventType; } & Record<string, string>; declare type EventType = "MESSAGE" | "CONNECT" | "DISCONNECT"; declare type RequestContext<E extends EventType> = Http.RequestContext & { connectedAt: number; eventType: E; connectionId: string; }; export {};