TypeScript icon, indicating that this package has built-in type declarations

    2.0.1 • Public • Published


    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.


    // 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;
      public firstName: string;
      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
        // 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: {},


    npm i @lambda-middleware/class-validator

    DownloadsWeekly Downloads






    Unpacked Size

    15 kB

    Total Files


    Last publish


    • dbartholomae