lambda-response-template
Version:
💬 A tiny utility for creating AWS Lambda response objects.
33 lines (29 loc) • 1.29 kB
text/typescript
import { APIGatewayProxyResult } from 'aws-lambda';
import { make } from './make';
import { Headers, MultiValueHeaders, ResponseOverrides, Template, TransformationFn } from './types';
export class ResponseTemplate {
public headers: Headers;
public multiValueHeaders: MultiValueHeaders;
public isBase64Encoded?: boolean;
public transform?: TransformationFn;
/** Creates a template. */
constructor(template: Template = {}) {
this.headers = template.headers || {};
this.multiValueHeaders = template.multiValueHeaders || {};
this.isBase64Encoded = template.isBase64Encoded;
this.transform = template.transform;
}
/**
* Creates a response object from a template.
*
* @param statusCode - HTTP status code.
* @param body - The response body.
* @param overrides - Override these parts of your template.
* @param contentType - Set `Content-Type` header to this value.
*/
public make(statusCode: number, body?: any, overrides?: ResponseOverrides): APIGatewayProxyResult;
public make(statusCode: number, body?: any, contentType?: string): APIGatewayProxyResult;
public make(statusCode: number, body: any = '', overrideLike?: ResponseOverrides | string): APIGatewayProxyResult {
return make(this, statusCode, body, overrideLike);
}
}