Package Exports
- awslambdaproxyresponse
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (awslambdaproxyresponse) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
AWS Lambda proxy response
A Node.js module which generates response payloads for API Gateway fronted Lambda functions integrated via the Lambda proxy method.
The response structure takes the following form:
{
statusCode: httpStatusCode,
headers: { headerName: 'headerValue' },
body: '...'
}Methods
AWSLambdaProxyResponse([statusCode])
- Creates new
AWSLambdaProxyResponseinstance. - Optional
statusCodesets the HTTP status code for the response, otherwise defaults to200 / OK. - Collection of valid HTTP codes defined at
AWSLambdaProxyResponse.HTTP_STATUS. - Constructor will throw an exception if given
statusCodeis not within this collection.
Example:
const AWSLambdaProxyResponse = require('awslambdaproxyresponse');
const resp = new AWSLambdaProxyResponse(
AWSLambdaProxyResponse.HTTP_STATUS.FOUND
);AWSLambdaProxyResponse.setStatusCode(statusCode)
- Sets the HTTP
statusCodefor a response. - Throws an exception if given
statusCodeis not within theAWSLambdaProxyResponse.HTTP_STATUScollection. - Returns
AWSLambdaProxyResponseinstance.
AWSLambdaProxyResponse.addHeader(name[,value])
- Adds HTTP headers to the Lambda proxy response.
- Single HTTP header can be added by providing a
name/valuepair. - Multiple headers can be added by providing an object collection as
nameonly. - Throws an exception if header names don't match the regular expression pattern
/^[A-Za-z-]+$/. - Returns
AWSLambdaProxyResponseinstance.
Example:
const AWSLambdaProxyResponse = require('awslambdaproxyresponse');
const resp = new AWSLambdaProxyResponse();
// lets add a single header
resp.addHeader('Content-Type','text/html');
// add several others
resp.addHeader({
'x-custom-header': 'value',
'x-user-auth': 'Donald Duck'
});AWSLambdaProxyResponse.setBody(body)
- Sets the response body payload.
- If
bodyis not of typestring, will be automatically serialized viaJSON.stringify(). - Returns
AWSLambdaProxyResponseinstance.
AWSLambdaProxyResponse.getPayload()
Returns a valid Lambda proxy response structure object.
Constants
AWSLambdaProxyResponse.HTTP_STATUS
A collection of valid HTTP status codes for use with the AWSLambdaProxyResponse() constructor or setStatusCode(statusCode) method:
const AWSLambdaProxyResponse = require('awslambdaproxyresponse');
console.dir(AWSLambdaProxyResponse.HTTP_STATUS);
/*
{
OK: 200,
MOVED: 301,
FOUND: 302,
BAD_REQUEST: 400,
UNAUTHORIZED: 401,
FORBIDDEN: 403,
NOT_FOUND: 404,
SERVER_ERROR: 500,
NOT_IMPLEMENTED: 501,
BAD_GATEWAY: 502,
SERVICE_UNAVAILABLE: 503,
GATEWAY_TIMEOUT: 504
}
*/Example usage
Within the context of a Lambda function:
const AWSLambdaProxyResponse = require('awslambdaproxyresponse');
exports.myHandler = (event,context,callback) => {
// create our response
const resp = new AWSLambdaProxyResponse();
resp.setBody('Hello world');
// return from Lambda
callback(null,resp.getPayload());
/*
console.dir(resp.getPayload());
{
statusCode: 200,
headers: {},
body: 'Hello world'
}
*/
};A Lambda response that results in a redirect:
const AWSLambdaProxyResponse = require('awslambdaproxyresponse');
exports.myHandler = (event,context,callback) => {
// create our response
const resp = new AWSLambdaProxyResponse();
resp.setStatusCode(AWSLambdaProxyResponse.HTTP_STATUS.MOVED);
resp.addHeader('Location','https://my.new.domain.com/');
// return from Lambda
callback(null,resp.getPayload());
/*
console.dir(resp.getPayload());
{
statusCode: 301,
headers: { Location: 'https://my.new.domain.com/' },
body: ''
}
*/
};