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

3.0.0 • Public • Published

middy-middleware-class-validator

npm version downloads open issues FOSSA Status npm bundle size debug build status codecov Libraries.io dependency status for latest release semantic release CLA Assistant

A middy middleware that returns errors as http errors, compatible with http-errors.

Installation

Download node at nodejs.org and install it, if you haven't already.

npm install middy-middleware-class-validator --save

Documentation

There is additional documentation.

Usage

// When using decorators, don't forget to import this in the very first line of code
import "reflect-metadata";

import { APIGatewayProxyEvent } from "aws-lambda";
import { IsString } from "class-validator";
import middy from "@middy/core";
import JSONErrorHandlerMiddleware from "middy-middleware-json-error-handler";

import ClassValidatorMiddleware, {
  WithBody,
} from "middy-middleware-class-validator";

// Define a validator for the body via class-validator
class NameBody {
  @IsString()
  public firstName: string;

  @IsString()
  public lastName: string;
}

// This is your AWS handler
async function helloWorld(event: WithBody<APIGatewayProxyEvent, 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 "middyfy" our handler, then we will be able to attach middlewares to it
export const handler = middy(helloWorld)
  .use(
    ClassValidatorMiddleware({
      // Add the validation class here
      classType: NameBody,
    }),
  )
  // The class validator throws validation errors from http-errors which are compatible with
  // the error handler middlewares for middy
  .use(JSONErrorHandlerMiddleware());

Dependents (0)

Package Sidebar

Install

npm i middy-middleware-class-validator

Weekly Downloads

147

Version

3.0.0

License

MIT

Unpacked Size

12.8 kB

Total Files

12

Last publish

Collaborators

  • dbartholomae