78 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			78 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| /* eslint-disable import/order */
 | |
| /* eslint-disable import/no-duplicates */
 | |
| import { HttpClientModule } from '@angular/common/http';
 | |
| import { default as ngLang } from '@angular/common/locales/zh';
 | |
| import { APP_INITIALIZER, DEFAULT_CURRENCY_CODE, LOCALE_ID, NgModule, Type } from '@angular/core';
 | |
| import { BrowserModule } from '@angular/platform-browser';
 | |
| import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
 | |
| import { SimpleInterceptor } from '@delon/auth';
 | |
| import { NzNotificationModule } from 'ng-zorro-antd/notification';
 | |
| import zh from '@angular/common/locales/zh';
 | |
| registerLocaleData(zh);
 | |
| // #region global third module
 | |
| 
 | |
| import { BidiModule } from '@angular/cdk/bidi';
 | |
| const GLOBAL_THIRD_MODULES: Array<Type<any>> = [BidiModule];
 | |
| 
 | |
| // #endregion
 | |
| 
 | |
| // #region Http Interceptors
 | |
| import { HTTP_INTERCEPTORS } from '@angular/common/http';
 | |
| 
 | |
| import { BusinessInterceptor, DefaultInterceptor } from '@core';
 | |
| 
 | |
| const INTERCEPTOR_PROVIDES = [
 | |
|   { provide: HTTP_INTERCEPTORS, useClass: SimpleInterceptor, multi: true },
 | |
|   { provide: HTTP_INTERCEPTORS, useClass: BusinessInterceptor, multi: true },
 | |
|   { provide: HTTP_INTERCEPTORS, useClass: DefaultInterceptor, multi: true }
 | |
| ];
 | |
| // #endregion
 | |
| 
 | |
| // #region Startup Service
 | |
| import { StartupService } from '@core';
 | |
| export function StartupServiceFactory(startupService: StartupService): () => Promise<void> {
 | |
|   return () => startupService.load();
 | |
| }
 | |
| const APPINIT_PROVIDES = [
 | |
|   StartupService,
 | |
|   {
 | |
|     provide: APP_INITIALIZER,
 | |
|     useFactory: StartupServiceFactory,
 | |
|     deps: [StartupService],
 | |
|     multi: true
 | |
|   },
 | |
|   { provide: DEFAULT_CURRENCY_CODE, useValue: '¥' },
 | |
|   AuthGuard
 | |
| ];
 | |
| // #endregion
 | |
| 
 | |
| import { AppComponent } from './app.component';
 | |
| import { CoreModule } from './core/core.module';
 | |
| import { GlobalConfigModule } from './global-config.module';
 | |
| import { LayoutModule } from './layout/layout.module';
 | |
| import { RoutesModule } from './routes/routes.module';
 | |
| import { SharedModule } from './shared/shared.module';
 | |
| import { STWidgetModule } from './shared/widget/st-widget.module';
 | |
| import { registerLocaleData } from '@angular/common';
 | |
| import { AuthGuard } from './core/guards/auth.guard';
 | |
| 
 | |
| @NgModule({
 | |
|   declarations: [AppComponent],
 | |
|   imports: [
 | |
|     BrowserModule,
 | |
|     BrowserAnimationsModule,
 | |
|     HttpClientModule,
 | |
|     GlobalConfigModule.forRoot(),
 | |
|     CoreModule,
 | |
|     SharedModule,
 | |
|     LayoutModule,
 | |
|     RoutesModule,
 | |
|     STWidgetModule,
 | |
|     NzNotificationModule,
 | |
|     ...GLOBAL_THIRD_MODULES
 | |
|   ],
 | |
|   providers: [...INTERCEPTOR_PROVIDES, ...APPINIT_PROVIDES],
 | |
|   bootstrap: [AppComponent]
 | |
| })
 | |
| export class AppModule {}
 |