82 lines
2.6 KiB
TypeScript
82 lines
2.6 KiB
TypeScript
|
import { HttpClient } from '@angular/common/http';
|
||
|
import { APP_INITIALIZER, ErrorHandler, NgModule } from '@angular/core';
|
||
|
import { BrowserModule } from '@angular/platform-browser';
|
||
|
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
|
||
|
import { JwtModule } from '@auth0/angular-jwt';
|
||
|
import { TranslateLoader, TranslateModule } from '@ngx-translate/core';
|
||
|
import { TranslateHttpLoader } from '@ngx-translate/http-loader';
|
||
|
import { ConfirmationService, MessageService } from 'primeng/api';
|
||
|
import { DialogService } from 'primeng/dynamicdialog';
|
||
|
import { AppRoutingModule } from './app-routing.module';
|
||
|
import { AppComponent } from './app.component';
|
||
|
import { FooterComponent } from './components/footer/footer.component';
|
||
|
import { HeaderComponent } from './components/header/header.component';
|
||
|
import { SidebarComponent } from './components/sidebar/sidebar.component';
|
||
|
import { SpinnerComponent } from './components/spinner/spinner.component';
|
||
|
import { SharedModule } from './modules/shared/shared.module';
|
||
|
import { ErrorHandlerService } from './services/error-handler/error-handler.service';
|
||
|
import { SettingsService } from './services/settings/settings.service';
|
||
|
import { NotFoundComponent } from './components/error/not-found/not-found.component';
|
||
|
|
||
|
@NgModule({
|
||
|
declarations: [
|
||
|
AppComponent,
|
||
|
HeaderComponent,
|
||
|
SidebarComponent,
|
||
|
FooterComponent,
|
||
|
SpinnerComponent,
|
||
|
NotFoundComponent,
|
||
|
],
|
||
|
imports: [
|
||
|
BrowserModule,
|
||
|
BrowserAnimationsModule,
|
||
|
AppRoutingModule,
|
||
|
SharedModule,
|
||
|
JwtModule.forRoot({
|
||
|
config: {
|
||
|
tokenGetter,
|
||
|
allowedDomains: ['localhost:5000', 'localhost:5001'],
|
||
|
disallowedRoutes: []
|
||
|
}
|
||
|
}),
|
||
|
TranslateModule.forRoot({
|
||
|
loader: {
|
||
|
provide: TranslateLoader,
|
||
|
useFactory: HttpLoaderFactory,
|
||
|
deps: [HttpClient]
|
||
|
}
|
||
|
})
|
||
|
],
|
||
|
providers: [
|
||
|
{
|
||
|
provide: APP_INITIALIZER,
|
||
|
useFactory: configurationFactory,
|
||
|
deps: [SettingsService],
|
||
|
multi: true
|
||
|
},
|
||
|
{
|
||
|
provide: ErrorHandler,
|
||
|
useClass: ErrorHandlerService
|
||
|
},
|
||
|
MessageService,
|
||
|
ConfirmationService,
|
||
|
DialogService
|
||
|
],
|
||
|
bootstrap: [AppComponent]
|
||
|
})
|
||
|
export class AppModule { }
|
||
|
|
||
|
export function configurationFactory(settingsService: SettingsService): () => Promise<unknown> {
|
||
|
return (): Promise<unknown> => {
|
||
|
return settingsService.loadSettings();
|
||
|
};
|
||
|
}
|
||
|
|
||
|
export function tokenGetter(): string {
|
||
|
return localStorage.getItem('jwt') ?? '';
|
||
|
}
|
||
|
|
||
|
export function HttpLoaderFactory(http: HttpClient): TranslateHttpLoader {
|
||
|
return new TranslateHttpLoader(http);
|
||
|
}
|