Pull to refresh

Comments 6

Спасибо, очень полезно! Мы тоже начали использовать inject и ощущения очень положительные.

Однако, можно ли этим инструментом решить вот такую задачу:

Есть module-federation приложение. Код хоста приложения:

@NgModule({
  declarations: [],
  bootstrap: [AppComponent],
  imports: [
    AppRoutingModule,
    // ...
  ],
  providers: [
    provideHttpClient(
      withInterceptors([httpAuthInterceptor]),
    ),
  ],
})
export class AppModule {}

Элемент роутинга:

{
  path: 'my-remote',
  loadChildren: () =>
    loadRemoteModule({
      type: 'manifest',
      remoteName: 'my-remote',
      exposedModule: './MyModule',
    }).then((m) => m.MyModule),
},

Интерцептор, который должен работать только в remote приложении:

export const myErrorInterceptor: HttpInterceptorFn = (req, next) => {
  // some code 

  return next(req).pipe(
    catchError((err: HttpErrorResponse) => throwError(err)),
    tap((response: any) => handleGraphQLError(response)),
  );
};

Если его так же подключить через provideHttpClient как в хост приложении, то интерцептор не будет срабатывать. Можно ли как-то это решить через inject?

то интерцептор не будет срабатывать

Тут о каком интерцепторе речь и где ожидается что он должен срабатывать?

Насколько я понял, то при переопределении httpClient не срабатывает интерцептор из родительского приложения (httpAuthInterceptor) внутри federation module. В таком случае внутри вашего federation module при определении provideHttpClient укажите withRequestsMadeViaParent . В таком случае внутри вашего federation module будут работать оба интерцептора, а вне только тот, что указан в родителе.

Извините, httpAuthInterceptor как раз прекрасно срабатывает, однако myErrorInterceptor , который находится в MyModule не срабатывает.


@NgModule({
  declarations: [MyComponent],
  imports: [],
  providers: [
    provideHttpClient(
      withInterceptors([myErrorInterceptor]),
    ),
  ],
  schemas: [CUSTOM_ELEMENTS_SCHEMA],
})
export class MyModule {}

Сможете воспроизвести проблему в stackblitz?

Постараюсь найти время. Это же нужно как-то изучить, как там развернуть host и remote ангуляр приложения :)

Ну тогда просто минимальный репозиторий )

Sign up to leave a comment.