Skip to content

Latest commit

 

History

History
48 lines (35 loc) · 1.64 KB

README.md

File metadata and controls

48 lines (35 loc) · 1.64 KB

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]": "[email protected]" }'

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