UNPKG

@nstudio/schematics

Version:

Cross-platform (xplat) tools for Nx workspaces.

55 lines (47 loc) 1.37 kB
import { ModuleWithProviders, NgModule, Optional, SkipSelf, Inject } from '@angular/core'; import { APP_BASE_HREF, CommonModule } from '@angular/common'; // libs import { NxModule } from '@nrwl/nx'; import { TranslateService } from '@ngx-translate/core'; import { throwIfAlreadyLoaded } from '@<%= npmScope %>/utils'; // app import { environment } from './environments/environment'; import { CORE_PROVIDERS, PlatformLanguageToken } from './services'; import { LogService } from './services/log.service'; /** * DEBUGGING */ LogService.DEBUG.LEVEL_4 = !environment.production; export const BASE_PROVIDERS: any[] = [ ...CORE_PROVIDERS, { provide: APP_BASE_HREF, useValue: '/' } ]; @NgModule({ imports: [ CommonModule, NxModule.forRoot() ] }) export class CoreModule { // configuredProviders: *required to configure WindowService and others per platform static forRoot(configuredProviders: Array<any>): ModuleWithProviders { return { ngModule: CoreModule, providers: [...BASE_PROVIDERS, ...configuredProviders] }; } constructor( @Optional() @SkipSelf() parentModule: CoreModule, @Inject(PlatformLanguageToken) lang: string, translate: TranslateService ) { throwIfAlreadyLoaded(parentModule, 'CoreModule'); // ensure default platform language is set translate.use(lang); } }