Newer
Older
import { BrowserModule } from '@angular/platform-browser';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { NgModule, APP_INITIALIZER } from '@angular/core';
import { HttpClientModule } from '@angular/common/http';
import { AppComponent } from './app.component';
FORESTIER Fabien
committed
import { AppRoutingModule } from './app-routing.module';
import { CoreModule } from './core/core.module';
ncastejon
committed
import { EditorialisationModule } from './editorialisation/editorialisation.module';
import { UserModule } from './user/user.module';
import { UserService } from './user/services';
FORESTIER Fabien
committed
import { AppConfigService } from './core/services';
// Function used by APP_INITIALIZER before the app start: init user info / statut (expect a promise)
export function initUserService(authService: UserService) {
return (): Promise<any> => {
return new Promise((resolve, reject) => {
authService.initializeService();
resolve();
FORESTIER Fabien
committed
export function initAppConfig(appConfigService: AppConfigService) {
return (): Promise<any> => {
return new Promise((resolve, reject) => {
appConfigService.load();
resolve();
});
};
}
],
imports: [
BrowserModule,
BrowserAnimationsModule,
FORESTIER Fabien
committed
CoreModule,
ncastejon
committed
EditorialisationModule,
UserModule,
FORESTIER Fabien
committed
// The order is important as the InitUserService require the configuration of the app
FORESTIER Fabien
committed
useFactory: initAppConfig,
deps: [AppConfigService],
FORESTIER Fabien
committed
{
provide: APP_INITIALIZER,
FORESTIER Fabien
committed
useFactory: initUserService,
deps: [UserService],
FORESTIER Fabien
committed
multi: true,
},
})
export class AppModule { }