-
François Agneray authoredFrançois Agneray authored
app-init.ts 1.09 KiB
import { APP_INITIALIZER } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { KeycloakService } from 'keycloak-angular';
import { Store } from '@ngrx/store';
import { AppConfigService } from './app-config.service';
import { initializeKeycloak } from 'src/app/auth/init.keycloak';
import { environment } from 'src/environments/environment';
function appInit(http: HttpClient, appConfigService: AppConfigService, keycloak: KeycloakService, store: Store<{ }>) {
return () => {
return http.get(`${environment.apiUrl}/client-settings`)
.toPromise()
.then(data => {
Object.assign(appConfigService, data);
appConfigService.apiUrl = environment.apiUrl;
return appConfigService;
})
.then(appConfigService => {
return initializeKeycloak(keycloak, store, appConfigService)
});
}
}
export const appInitializer = {
provide: APP_INITIALIZER,
useFactory: appInit,
multi: true,
deps: [ HttpClient, AppConfigService, KeycloakService, Store ]
};