Socket
Socket
Sign inDemoInstall

aws-lambda-middleware

Package Overview
Dependencies
0
Maintainers
1
Versions
27
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

aws-lambda-middleware


Version published
Weekly downloads
92
increased by360%
Maintainers
1
Install size
41.8 kB
Created
Weekly downloads
 

Readme

Source

aws-lambda-middleware

NPM version NPM downloads

AWS Lambda Middleware

You can simply apply Middleware in Lambda. 
Clean code split is possible, and it includes a simple and extensible Parameter PropTypes validater.
It is implemented as lightly as possible to reduce the burden when running Lambda.

🚀 v1.0 added features
A Validate function that is easy to expand and use has been added, and deep data of arrays and objects can now be processed.

It is compatible even in environments other than lambda. (node express etc.)

 

Install

npm i aws-lambda-middleware

 

Quick setting

const { Middleware, Prop } = require('aws-lambda-middleware')


exports.handler = new Middleware().add({
  queryStringParameters: {
      username: Prop.string.required(),
      age: Prop.integer,
      friends: [
        {
          name: Prop.string.length({ max: 20 }),
          gender: Prop.string.or(['male', 'female'])
        }
      ]
  }
}).add(async (event, context, prevData) => {
  const query = event.queryStringParameters

  //your code

  return {
      statusCode: 200,
      body: JSON.stringify({
        message: 'success'
      })
  }
})

 

Options

You can set global options and cluster options.

You can set options such as trim.

📖 Options detail docs

Middleware

You can simply apply Middleware in Lambda. 

📖 Middleware detail docs

PropTypes

Checks and corrects the data types of request parameters.

PropTypes and Prop are the same object.

📖 PropTypes detail docs

Validate

It only verifies the validity of the request parameter value.

You can use it by adding custom rules.

📖 Validate detail docs

 

The rules added to PropTypes and Validate are written in one line and used.

Message

Error messages can be organized into templates.

📖 Message detail docs

 

with Express

Introducing a method that can be applied to the Express framework.

It can also be used in other frameworks.

📖 with Express

   

⚠️ Upgrading from v0.9 to v1.0

1. object and array expressions

object and array are designated as reserved prop name, so the rule cannot be overwritten.

⚠️ Reserved prop names

2. Option settings for each PropTypes

trim settings for each PropTypes use .option().

{
  param: Prop.string.option({ trim: false })
}

3. PropTypes and Prop

The abbreviated Prop can be used instead of the PropTypes.
PropTypes can still be used as well.

4. .isRequired has been replaced by .required().

.isRequired is also compatible, but not recommended.

5. Parameter type of PropTypes.*.default() function

When dynamically setting the default value of PropTypes, the parameter type has been changed to named parameters.

v0.9

Prop.*.default((event) => {})

v1.0

Prop.*.default(({ event }) => {})

📖 PropTypes > Support methods

6. Interpreting object and array expressions

The interpretation of Object and Array expressions has been changed from validate only when value exists to required validation.
When setting the body as shown below, the returned status depends, so check the item document in PropTypes > Support methods.

📖 PropTypes > Support methods

exports.handler = new Middleware().add({
  body: {
    myId: Prop.string
  }
})

v0.9
Even if the body of the request parameter is an empty Object or has no value, status = 200 is returned.

v1.0
If the body of the request parameter is an empty Object or has no value, status = 400 is returned.
In order to validate only when value exists for the body, you must also set PropTypes on the body.

exports.handler = new Middleware().add({
  body: Prop.object.item({
    myId: Prop.string
  })
})

Keywords

FAQs

Last updated on 05 Apr 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc