Simple async function wrapper for AWS lambda and serverless library
- allows using common middlewares (before, catch)
- allows to set common error response format
- supports generator functions using
co(optional)
const { lambdaWrap } = require('lambda-wrap'); const wrap = lambdaWrap({ headers: { 'Access-Control-Allow-Origin': '*', 'Access-Control-Allow-Credentials': 'true', }, callbackWaitsForEmptyEventLoop: false, // usefull for mongodb verboseError: true // include error stack in response (possible to ) verboseLog: true // include headers and body in error log }); wrap.before((event) => { if (event.body && `${event.headers['content-type']}`.match(/^application\/json/)) { event.body = JSON.parse(event.body); } }); // or you can set custom logger wrap.logger = console; wrap.finally((error, response) => { // close connections or send logs }); module.exports.myHandler = wrap(async (event) => { // return json body return { body: { objectAttribute: true } }; })
- error(message, code)
Return new error object.
Kind: global class
lambdaWrap function. You can pass options to override or assign new
attributes to event object. For example add custom headers:
const headers = {
'X-Auth-Token': 'my-token'
};
const wrap = lambdaWrap({ headers });
It returns an instance of LambdaWrap - wrap object. This object can
be used for specifying additional properties:
wrap.responseHandler = customResponseFunction;
Finally, wrap object can be used as a function to wrap any generator
function and thus create lambda handler:
const handler = wrap(async (event) => {
return {
body: 'Hello world'
};
});
Returns: function - - the wrap function
| Param | Type | Description |
|---|---|---|
| [globalOptions] | LambdaWrapOptions |
Use to override or assign new attributes |
Return new error object.
Kind: global function
| Param | Type | Description |
|---|---|---|
| message | string |
Error message. |
| code | integer |
Error code. |