0.0.13 • Published 1 year ago

@medial/lambda v0.0.13

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

@medial/lambda

Build Status codecov Known Vulnerabilities Total alerts Language grade: JavaScript

A wrapper for AWS Lambda

A wrapper to help build AWS Lambda backed HTTP services.

Features

  • Validation via Joi
    • Headers
    • Path Params
    • Query Params
    • Payload
  • Error responses via Boom
  • handles complexities of dealing with lambda functions (For example: multiple values for the same key in queryParams)

Please checkout the full example

Inspired by the hapi framework.

Example

Medial Handler Object

const Lambda = require('@medial/lambda');
const Boom = require('@hapi/boom');
const Joi = require('@hapi/joi');


exports.get = Lambda.define({
  validate: {
    query: Joi.object().keys({
      world: Joi.string().default('world')
    })
  },
  handler: async function(request, h) {
    const world = request.query.world;

    return {hello: world};
  }
});

exports.get is now a AWS Lambda function. Once this function is configured for HTTP access via the AWS API Gateway - when invoked, it will return {"hello": "world"} with a response code of 200.

You can also invoke the lambda from another lambda. The response will look like this:

{
  multiValueHeaders: {},
  statusCode: 200,
  body: '{"hello": "world"}' // this is stringifyed object 
}

Working example

Deploy the example to AWS and/or run it locally with swagger documentation

A full example

Documentation

0.0.13

1 year ago

0.0.12

2 years ago

0.0.10

2 years ago

0.0.11

2 years ago

0.0.9

2 years ago

0.0.8

2 years ago

0.0.7

3 years ago

0.0.6

3 years ago

0.0.5

4 years ago

0.0.4

4 years ago

0.0.3

4 years ago

0.0.2

4 years ago

0.0.1

4 years ago