serverless-aws-lambda
Version:
AWS Application Load Balancer and API Gateway - Lambda dev tool for Serverless. Allows Express synthax in handlers. Supports packaging, local invoking and offline ALB, APG, S3, SNS, SQS, DynamoDB Stream server mocking.
96 lines (95 loc) • 3.17 kB
TypeScript
import { Writable } from "stream";
import type { WritableOptions } from "stream";
interface IResponseStream {
cork: Writable["cork"];
/**
* Do not use. This may lead to unexcepted result in AWS Lambda Runtime.
* @deprecated
*/
destroy: Writable["destroy"];
end: Writable["end"];
uncork: Writable["uncork"];
write: Writable["write"];
addListener: Writable["addListener"];
emit: Writable["emit"];
eventNames: Writable["eventNames"];
getMaxListeners: Writable["getMaxListeners"];
listenerCount: Writable["listenerCount"];
listeners: Writable["listeners"];
off: Writable["off"];
on: Writable["on"];
once: Writable["once"];
prependListener: Writable["prependListener"];
prependOnceListener: Writable["prependOnceListener"];
rawListeners: Writable["rawListeners"];
removeAllListeners: Writable["removeAllListeners"];
removeListener: Writable["removeListener"];
setMaxListeners: Writable["setMaxListeners"];
/**
* @param {any} contentType must be a string or implement toString()
* @throws Error
*/
setContentType: (contentType: any) => void;
writable: boolean;
readonly writableEnded: boolean;
readonly writableFinished: boolean;
readonly writableHighWaterMark: number;
readonly writableLength: number;
readonly writableObjectMode: boolean;
readonly writableNeedDrain: boolean;
readonly writableCorked: number;
destroyed: boolean;
/**
* used by AWS inside HttpResponseStream.from function
* @internal
*/
_onBeforeFirstWrite?: (write: Writable["write"]) => any;
}
interface IStreamableHandlerContext {
callbackwaitsforemptyeventloop: boolean;
functionVersion: string;
functionName: string;
memoryLimitInMB: string;
logGroupName: string;
logStreamName: string;
clientContext: any;
identity: any;
invokedFunctionArn: string;
awsRequestId: string;
getRemainingTimeInMillis: () => number;
}
export type StreamableHandler = (event: any, responseStream: IResponseStream, context?: IStreamableHandlerContext) => Promise<any | void>;
interface IMetadata {
statusCode?: number;
headers?: {
[key: string]: string;
};
cookies?: string[];
body?: string | Buffer;
isBase64Encoded?: boolean;
}
export declare class ResponseStream extends Writable {
#private;
_onBeforeFirstWrite?: (write: Writable["write"]) => any;
constructor(opts: Partial<WritableOptions>);
setContentType: (contentType: any) => void;
}
export interface IHttpResponseStream {
/**
* @param {any} metadata http proxy integration response object.
*
* This could also be 'any' byte to be written before all write.() executions.
*
* Metadata will be wrapped into JSON.stringify().
*
* `{statusCode: 404, cookies: ["hello=world"]}`
*
*
* @throws Error
*/
from: (responseStream: IResponseStream, metadata: IMetadata) => IResponseStream;
}
export declare class HttpResponseStream {
static from: (responseStream: IResponseStream, metadata: IMetadata) => IResponseStream;
}
export {};