File

lib/shared/interceptors/dto.interceptor.ts

Description

An interceptor to transform plain JavaScript objects into instances of a specified DTO class.

Index

Methods

Constructor

constructor(serializer)
Parameters :
Name Optional
serializer No

Methods

intercept
intercept(context: ExecutionContext, next: CallHandler)
Parameters :
Name Type Optional
context ExecutionContext No
next CallHandler No
Returns : any
import {
  CallHandler,
  ExecutionContext,
  Injectable,
  NestInterceptor,
} from "@nestjs/common";
import { map } from "rxjs";
import { plainToInstance } from "class-transformer";

/**
 * An interceptor to transform plain JavaScript objects into instances of a specified DTO class.
 * @template T - The DTO class to use for transformation.
 */
@Injectable()
export class DtoInterceptor<T> implements NestInterceptor {
  constructor(private readonly serializer: new () => T) {}

  intercept(context: ExecutionContext, next: CallHandler) {
    return next
      .handle()
      .pipe(map((data) => plainToInstance(this.serializer, data)));
  }
}

results matching ""

    No results matching ""