[NestJS] decorator

Younghwan Cha·2023년 8월 21일
0

Nest.js

목록 보기
22/27
post-thumbnail

Custom decorator


applyDecorators

여러 개의 데코레이터를 하나로 결합하여 적용하는 데 사용되는 함수이다. NestJS에서 사용되며, 데코레이터들을 하나의 배열로 묶고 해당 배열을 컴포넌트에 적용하는 데에 도움을 준다.
아래와 같이 PropertyDecorator 타입을 주고 정의 할 수 있다.

export function ApiPropertyOptionalNumber(): PropertyDecorator {
  return applyDecorators(
    ApiProperty({ type: Number }),
    ApiPropertyOptional(),
  );
}

paramDecorator

요청시 (@User() user: User) 와 같이 사용할 custom decorator 를 만들 수 있다.

import { ExecutionContext, createParamDecorator } from "@nestjs/common";

export const User = createParamDecorator(
  (_: unknown, context: ExecutionContext) => {
    const request = context.switchToHttp().getRequest();

    return request.user;
  }
);

export const UserId = createParamDecorator(
  (_: unknown, context: ExecutionContext) => {
    const request = context.switchToHttp().getRequest();

    return request.user.userId;
  }
);

export const IsUserAdmin = createParamDecorator(
  (_: unknown, context: ExecutionContext) => {
    const request = context.switchToHttp().getRequest();

    return request.isAdmin;
  }
);
profile
개발 기록

0개의 댓글