lambda-wrap
TypeScript icon, indicating that this package has built-in type declarations

3.1.0 • Public • Published

LambdaWrap

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
        }
    };
})
 

API

Classes

lambdaWrap

Functions

error(message, code)

Return new error object.

lambdaWrap

Kind: global class

new lambdaWrap([globalOptions])

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

error(message, code)

Return new error object.

Kind: global function

Param Type Description
message string Error message.
code integer Error code.

Dependents (0)

Package Sidebar

Install

npm i lambda-wrap

Weekly Downloads

13

Version

3.1.0

License

MIT

Unpacked Size

32.9 kB

Total Files

19

Last publish

Collaborators

  • davidmenger
  • mtakac
  • pragonauts