@lambda-middleware/class-validator
    TypeScript icon, indicating that this package has built-in type declarations

    2.0.1 • Public • Published

    @lambda-middleware/class-validator

    npm version downloads open issues debug build status codecov dependency status devDependency status

    A validation middleware for AWS http lambda functions based on class-validator and class-transformer.

    Lambda middleware

    This middleware is part of the lambda middleware series. It can be used independently.

    Usage

    // When using decorators, don't forget to import this in the very first line of code
    import "reflect-metadata";
    
    import { classValidator } from '@lambda-middleware/class-validator'
    import { composeHandler } from "@lambda-middleware/compose";
    import { errorHandler } from "@lambda-middleware/http-error-handler";
    import { IsString } from "class-validator";
    
    // Define a validator for the body via class-validator
    class NameBody {
      constructor(firstName: string, lastName: string) {
        this.firstName = firstName;
        this.lastName = lastName;
      }
    
      @IsString()
      public firstName: string;
    
      @IsString()
      public lastName: string;
    }
    
    // This is your AWS handler
    async function helloWorld(event: { body: NameBody }) {
      // Thanks to the validation middleware you can be sure body is typed correctly
      return {
        body: `Hello ${event.body.firstName} ${event.body.lastName}`,
        headers: {
          "content-type": "text",
        },
        statusCode: 200,
      };
    }
    
    // Let's add middleware to our handler, then we will be able to attach middlewares to it
    export const handler = composeHandler(
      // The class validator throws validation errors from http-errors which are compatible with
      // the error handler middlewares for middy
      errorHandler(),
      classValidator({
        // Add the validation class here
        bodyType: NameBody,
        // You can add options to class-transformer. These will be passed through,
        // so read the class-transformer documentation for details
        transformer: {},
        // You can add options to class-validator. For security reasons,
        // whitelist by default is set to true. If you set any options, you have
        // to set it to true manually as the default for class-validator would be
        // false
        validator: {},
      }),
      helloWorld
    );

    Install

    npm i @lambda-middleware/class-validator

    DownloadsWeekly Downloads

    138

    Version

    2.0.1

    License

    MIT

    Unpacked Size

    15 kB

    Total Files

    14

    Last publish

    Collaborators

    • dbartholomae