Skip to content
Snippets Groups Projects
app.module.ts 1.85 KiB
Newer Older
  • Learn to ignore specific revisions
  • 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';
    
    import { AppRoutingModule } from './app-routing.module';
    import { CoreModule } from './core/core.module';
    
    import { EditorialisationModule } from './editorialisation/editorialisation.module';
    
    ncastejon's avatar
    ncastejon committed
    import { Angulartics2Module } from 'angulartics2';
    
    import { UserModule } from './user/user.module';
    
    import { UserService } from './user/services';
    
    import { AppConfigService } from './core/services';
    
    
    // Function used by APP_INITIALIZER before the app start: init user info / statut (expect a promise)
    
    FORESTIER Fabien's avatar
    FORESTIER Fabien committed
    export function initUserService(authService: UserService) {
    
      return (): Promise<any> => {
        return new Promise((resolve, reject) => {
    
          authService.initializeService();
          resolve();
    
    export function initAppConfig(appConfigService: AppConfigService) {
      return (): Promise<any> => {
        return new Promise((resolve, reject) => {
          appConfigService.load();
          resolve();
        });
      };
    }
    
    
    @NgModule({
      declarations: [
    
      ],
      imports: [
        BrowserModule,
        BrowserAnimationsModule,
    
        HttpClientModule,
    
        AppRoutingModule,
    
        Angulartics2Module.forRoot(),
    
        // The order is important as the InitUserService require the configuration of the app
    
        {
          provide: APP_INITIALIZER,
    
          useFactory: initAppConfig,
          deps: [AppConfigService],
    
          useFactory: initUserService,
          deps: [UserService],
    
      bootstrap: [AppComponent],
    
    })
    export class AppModule { }