import { APP_INITIALIZER, NgModule } from '@angular/core'; import { BrowserModule } from '@angular/platform-browser'; import { AppComponent } from './app.component'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; import { MatToolbarModule } from '@angular/material/toolbar'; import { HttpClientModule } from '@angular/common/http'; import { AkitaNgDevtools } from '@datorama/akita-ngdevtools'; import { environment } from '../environments/environment'; import { MatListModule } from '@angular/material/list'; import { CFG } from './const'; import { CoreModule } from './core/core.module'; import { MatButtonModule } from '@angular/material/button'; import { AuthService } from './auth/auth.service'; import { AuthModule } from './auth/auth.module'; import { MatFormFieldModule } from '@angular/material/form-field'; import { MatInputModule } from '@angular/material/input'; import { FormsModule } from '@angular/forms'; import { AppRoutingModule } from './app-routing.module'; import { MatTabsModule } from '@angular/material/tabs'; @NgModule({ declarations: [AppComponent], imports: [ BrowserModule, CoreModule, AuthModule, BrowserAnimationsModule, HttpClientModule, MatToolbarModule, environment.production ? [] : AkitaNgDevtools.forRoot(), MatListModule, MatButtonModule, MatFormFieldModule, MatInputModule, FormsModule, AppRoutingModule, MatTabsModule ], providers: [ { provide: CFG, useValue: environment }, { provide: APP_INITIALIZER, useFactory: (auth: AuthService) => { return () => auth.login(); }, deps: [AuthService], multi: true } ], bootstrap: [AppComponent] }) export class AppModule { }