Skip to content

✨API wrapper for AWS lambda, handle responses and normalize POST data

License

Notifications You must be signed in to change notification settings

therebelrobot/lambda-wrapper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

lambda-wrapper

A simple API wrapper for AWS lambda

Usage

yarn add lambda-api-wrapper
npm i lambda-api-wrapper

Then wrap the handler you want to run in the wrapper:

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.

lambda-wrap run \
  --path webhooks/this-webhook \ # infers .js on the filename
  --formData '{ "contact[email]": "person@example.com" }'

You must export handler (as shown above) to use this functionality. All logs and responds 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

About

✨API wrapper for AWS lambda, handle responses and normalize POST data

Resources

License

Stars

Watchers

Forks

Packages

No packages published