Ошибка при обнаружении метаданных типа во время разработки с обратной связью

#typescript #loopback4

#typescript #loopback4

Вопрос:

У меня следующая ошибка 500 при запуске контроллера с обратной связью 4.

 Unhandled error in GET /v1/me/societes: 500 Error: No design-time type metadata found while inspecting FirebaseAuthService.constructor[2]. You can either use `@service(ServiceClass)` or ensure `emitDecoratorMetadata` is enabled in your TypeScript configuration. Run `tsc --showConfig` to print the final TypeScript configuration of your project.
 

Я думаю, что проблема связана FirebaseService с внедрением здесь :

 @injectable({scope: BindingScope.SINGLETON})
export class FirebaseAuthService {
  constructor(
    @repository(UtilisateurRepository)
    public utilisateurRepository: UtilisateurRepository,
    @repository(TokenRepository)
    public tokenRepository: TokenRepository,
    @service(FirebaseService)
    public firebaseService: FirebaseService,
  ) {}
 

Но FirebaseService класс выглядит нормально :

 @injectable({scope: BindingScope.SINGLETON})
export class FirebaseService {
 

Все мои классы служб находятся в src/services каталоге, поэтому они должны быть зарегистрированы с помощью обратной связи. Или, может быть, моя проблема не имеет ничего общего с внедрением сервисов?

Я пытаюсь понять это в течение нескольких часов. У кого-нибудь есть идея?

Спасибо за вашу помощь!

Оливье

Ответ №1:

У меня та же проблема. Вам нужно импортировать полный путь к этому файлу вместо папки. ПРИМЕР: импорт ServiceA из ‘./ services/ service-a.service’;

Комментарии:

1. Кто-нибудь знает, как это решает проблему? Я предполагаю, что при разрешении метаданных класса где-то используется импортированный путь в качестве ключа…

Ответ №2:

Я решил эту проблему, удалив циклическую зависимость при внедрении службы