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 {DataTablesModule} from 'angular-datatables'; 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 {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, DataTablesModule, SharedModule, MatTableModule, LoggerModule.forRoot({ level: environment.level, 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: HttpConfigInterceptor, multi: true }, { provide: HTTP_INTERCEPTORS, useClass: ErrorInterceptor, multi: true }, { provide: HTTP_INTERCEPTORS, useClass: LoggingInterceptor, multi: true }, ], bootstrap: [AppComponent] }) export class AppModule { }