Я работаю над NestJS, который использует Firebase для аутентификации.
Я хочу перехватить все и только исключение из Firebase (например, когда пользователи используют токен с истекшим сроком действия) и преобразовать их в реальные ошибки HTTP. Я хочу, чтобы HttpExceptions
обрабатывался фильтром по умолчанию.
Я пытался создать новый фильтр, но когда я пытаюсь установить декоратор как
@Catch(FirebaseError)
он не компилируется, говоря 'FirebaseError' only refers to a type, but is being used as a value here.
Я также попытался оставить @Catch()
без аргументов и указать тип FirebaseError
в функции catch
, но он перехватывает каждое исключение.
// This code doesn't work
import { FirebaseError } from 'firebase';
import { ArgumentsHost, Catch, ExceptionFilter } from '@nestjs/common';
@Catch(FirebaseError)
export class FirebaseExceptionFilter implements ExceptionFilter<FirebaseError> {
catch(exception: FirebaseError, host: ArgumentsHost) {
// handle the exception
}
}
Я хочу, чтобы этот фильтр вызывался для FirebaseError
исключений, но если я напишу @Catch(FirebaseError)
, он не скомпилируется, если я напишу @Catch()
, он перехватит каждое исключение.