0.0.2 • Published 4 years ago

nestjs-async-transform v0.0.2

Weekly downloads
-
License
MIT
Repository
-
Last release
4 years ago

nest-async-transform

Installation

npm install --save nestjs-async-transform

yarn add nestjs-async-transform

Usage

example.dto.ts

import { AsyncTransform } from 'nestjs-async-transform';
import { JwtService } from '@nestjs/jwt';

export interface ExampleUser {
  name: string;
  age: number;
}

export class ExampleDto {
  token: string;

  @AsyncTransform<ExampleDto, ExampleUser>({
    inject: [JwtService],
    transform: (dto, jwt: JwtService) => jwt.verify(dto.token),
  })
  payload: ExampleUser;
}

example.module.ts

import { Module } from '@nestjs/common';
import { ExampleController } from './example.controller';
import { JwtModule } from '@nestjs/jwt';

@Module({
  imports: [JwtModule.register({ secret: 'secret' })],
  controllers: [ExampleController],
})
export class ExampleModule {}

example.controller.ts

import { Controller, Body, Post } from '@nestjs/common';
import { AsyncTransformPipe } from 'nestjs-async-transform';
import { ExampleDto, ExampleUser } from './example.dto';

@Controller()
export class ExampleController {
  @Post()
  post(@Body(AsyncTransformPipe) dto: ExampleDto): ExampleUser {
    return dto.payload;
  }
}