@meetuplol/nestjs-swagger-dto
TypeScript icon, indicating that this package has built-in type declarations

0.1.0 • Public • Published

nestjs-swagger-dto

Deploy Coverage Status

Nest.js Swagger DTO decorators

This library combines common @nestjs/swagger, class-transformer and class-validator decorators that are used together into one decorator for full Nest.js DTO lifecycle including OpenAPI schema descriptions.

Installation

npm i nestjs-swagger-dto

Contents

This library contains the following decorators

Name Description
IsBoolean boolean
IsConstant constant
IsDate date / date-time
IsEnum enum object / array of values
IsNested nested DTO
IsNumber numbers
IsObject typed plain js objects
IsString strings

All of the decorators support the following parameters:

Name Description
description adds description
deprecated deprecates a field
example adds example
name sets the name for serialized property
optional makes property optional
nullable makes property nullable
isArray changes the type of property to array of items of this type

Also decorators have additional parameters like: min, max for IsNumber.

Headers validation

You can also validate request headers using TypedHeaders decorator.

export class TestHeaders {
  @IsString({
    // Note: header names will be lowercased automatically
    name: 'country-code',
    maxLength: 2,
    minLength: 2,
    example: 'US',
  })
  countryCode!: string;

  @IsString({
    isDate: { format: 'date-time' },
    name: 'timestamp',
  })
  timestamp!: string;
}

@Controller({ path: 'test', version: '1' })
export class TestController {
  @Get()
  async test(@TypedHeaders() headers: TestHeaders): Promise<string> {
    return headers.countryCode;
  }
}

Other

Bootstrapped with: create-ts-lib-gh

This project is Mit Licensed.

Readme

Keywords

none

Package Sidebar

Install

npm i @meetuplol/nestjs-swagger-dto

Weekly Downloads

0

Version

0.1.0

License

MIT

Unpacked Size

40 kB

Total Files

42

Last publish

Collaborators

  • tristancamejo