import { BrowserModule } from '@angular/platform-browser'; import { ErrorHandler, NgModule } from '@angular/core'; import { AppRoutingModule } from '@app/app-routing.module'; import { AppComponent } from '@app/app.component'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; import { HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http'; import { GlobalErrorHandler, MockBackendProvider } from '@app/_helpers'; import { SharedModule } from '@app/shared/shared.module'; import { MatTableModule } from '@angular/material/table'; import { AuthGuard } from '@app/_guards'; import { LoggerModule } from 'ngx-logger'; import { environment } from '@src/environments/environment'; import { ConnectionInterceptor, ErrorInterceptor, HttpConfigInterceptor, LoggingInterceptor, } from '@app/_interceptors'; import { MutablePgpKeyStore } from '@app/_pgp'; import { ServiceWorkerModule } from '@angular/service-worker'; @NgModule({ declarations: [AppComponent], imports: [ BrowserModule, AppRoutingModule, BrowserAnimationsModule, HttpClientModule, SharedModule, MatTableModule, LoggerModule.forRoot({ level: environment.logLevel, serverLogLevel: environment.serverLogLevel, serverLoggingUrl: `${environment.loggingUrl}/api/logs/`, disableConsoleLogging: false, }), ServiceWorkerModule.register('ngsw-worker.js', { enabled: environment.production }), ], providers: [ AuthGuard, MutablePgpKeyStore, MockBackendProvider, GlobalErrorHandler, { provide: ErrorHandler, useClass: GlobalErrorHandler }, { provide: HTTP_INTERCEPTORS, useClass: ConnectionInterceptor, multi: true }, { provide: HTTP_INTERCEPTORS, useClass: HttpConfigInterceptor, multi: true }, { provide: HTTP_INTERCEPTORS, useClass: ErrorInterceptor, multi: true }, { provide: HTTP_INTERCEPTORS, useClass: LoggingInterceptor, multi: true }, ], bootstrap: [AppComponent], }) export class AppModule {}