node package manager
Easy sharing. Manage teams and permissions with one click. Create a free org »

@mitchallen/lambda-adapter

@mitchallen/lambda-adapter

aws lambda service adapter

Continuous Integration Coverage Status Downloads Version License

Installation

$ npm init
$ npm install @mitchallen/lambda-adapter --save

Modules

lambda-adapter

Module

lambda-adapter-factory

Factory module

lambda-adapter

Module

lambda-adapter-factory

Factory module

lambda-adapter-factory.create(spec) ⇒ Promise

Factory method It takes one spec parameter that must be an object with named parameters

Kind: static method of lambda-adapter-factory
Returns: Promise - that resolves to {module:lambda-adapter}

Param Type Description
spec Object Named parameters object
spec.env Object An object containing key values pairs of env variables
spec.regex Object Path regex, like '/:model/:id'
spec.event Object Event from Lambda handler
spec.callback function Callback from Lambda handler

Example (Using adapter)

 
    // lambda function 
 
    var factory = require("@mitchallen/lambda-adapter"),
 
    exports.handler = function(event, context, callback) {
 
        factory.create({ 
            env: {
                "stripeKey": process.env.TEST_STRIPE_SECRET || null
            },
            event: event, 
            callback: callback 
        })
        .then(function(adapter) {
            var env = adapter.env;
            var params = adapter.params;
            response = adapter.response;
            var stripeKey = env["stripeKey"];
            var a = params.a,
                b = params.b;
            // ... 
            if(bad-condition) {
                response.fail(err);
            } else {
                response.json(object);
            }
        })
        .catch( function(err) { 
            console.error(err); 
        });
    };

Example (Passing adapter)

 
    // lambda function 
 
    var factory = require("@mitchallen/lambda-adapter"),
        otherFactory = require(...);
 
    exports.handler = function(event, context, callback) {
 
        factory.create({ 
            env: {
                "stripeKey": process.env.TEST_STRIPE_SECRET || null
            },
            event: event, 
            callback: callback 
        })
        .then(function(adapter) {
            return otherFactory.create({ adapter: adapter });
        });
    };

Testing

To test, go to the root folder and type (sans $):

$ npm test

Repo(s)


Contributing

In lieu of a formal style guide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code.


Version History

Version 0.3.0

  • Expanded and reworked, breaking backward compatibility

Version 0.2.2

  • Added env parameter for passing environment parameters

Version 0.2.1

  • fixed some stringify issue that affect API gatewat

Version 0.2.0

  • Broke backward compatibility
  • response.success replaced by response.json and response.jsonp

Version 0.1.3

  • brought code coverage up to 100%

Version 0.1.2

  • fixed type-o in code doc

Version 0.1.1

  • updated description in package.json and README

Version 0.1.0

  • initial release