NestJS 내장 파이프가 아닌 원하는 커스텀 파이프를 사용하고 싶다면,
먼저 PipeTransform 이란 인터페이스를 새롭게 만들 커스텀 파이프에 구현해주어야 한다.
이 PipeTransform 인터페이스는 모든 파이프에서 구현해주어야 하는 인터페이스이다. 이것과 함께 모든 파이프는 transform() 메소드를 필요로 한다. 이 transform() 메소드는 NestJS가 인자(arguments)를 처리하기 위해서 사용된다.
transform(p1, p2)이 메소드는 두 개의 파라미터를 가진다.
transform()이 Return하는 값은 Route 핸들러로 전달된다.
예외(Exception)가 발생하면 클라이언트에 바로 전달된다.
파이프 폴더 안에 새로운 파이프 파일 생성
// board/pipes/board-status-validation.pipe.ts
exprot class BoardStatusValidationPipe implements PipeTransform {
transform(value: any, metadata: ArgumenMetadata) {
console.log('value', value);
console.log('metadata', metadata);
return value;
}
}