@mitchallen/lambda-adapter
v0.3.0
Published
aws lambda service adapter
Downloads
5
Readme
@mitchallen/lambda-adapter
aws lambda service adapter
Installation
$ npm init
$ npm install @mitchallen/lambda-adapter --save
Modules
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