Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/therebelrobot/lambda-wrapper
✨API wrapper for AWS lambda, handle responses and normalize POST data
https://github.com/therebelrobot/lambda-wrapper
Last synced: 24 days ago
JSON representation
✨API wrapper for AWS lambda, handle responses and normalize POST data
- Host: GitHub
- URL: https://github.com/therebelrobot/lambda-wrapper
- Owner: therebelrobot
- License: mit
- Created: 2018-05-09T18:46:08.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2021-11-17T20:34:04.000Z (about 3 years ago)
- Last Synced: 2024-12-08T13:46:30.822Z (about 2 months ago)
- Language: JavaScript
- Homepage:
- Size: 46.9 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# lambda-wrapper
A simple API wrapper for AWS lambda## Usage
```bash
yarn add lambda-api-wrapper
npm i lambda-api-wrapper
```Then wrap the handler you want to run in the wrapper:
```js
import * as wrapper from 'lambda-api-wrapper';export const handler = async ({
// lambda-api-wrapper adds a few nice-to-haves to your lambda functions:
respond, // function, the response handler. must be returned by function. e.g return respond(500, 'you messed up!')
verbose, // boolean, whether ?verbose=true was included in url
log, // function, logs to cloudwatch if verbose === true
multipartData, // parsed multipart form data from body
jsonData, // parsed JSON data from post body
formData, // parsed url-encoded form data from body// lambda's original function parameters are also included:
event, context, callback }) => {
// do stuff
return respond(200, 'OK'); // respond with the status code and response info
};export default wrapper(handler);
```## CLI
In addition to the wrapper, if you globally install the library (`npm i -g lambda-api-wrapper`) you can run a handler independent of the wrapper/lambda framework for testing purposes.
```bash
lambda-wrap run \
--path webhooks/this-webhook \ # infers .js on the filename
--formData '{ "contact[email]": "[email protected]" }'
```You ***must*** export `handler` (as shown above) to use this functionality. All `log`s and `respond`s will be piped to `console.log`. For now, `event`, `context`, and `callback` are not currently provided in this use case. If you'd like to add this functionality, please feel free to fork this repo and open a PR (I'm quite friendly ^_^ )
### License
MIT