@nstudio/schematics
Version:
Cross-platform (xplat) tools for Nx workspaces.
55 lines (47 loc) • 1.37 kB
text/typescript
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: '/'
}
];
({
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(
()
()
parentModule: CoreModule,
(PlatformLanguageToken) lang: string,
translate: TranslateService
) {
throwIfAlreadyLoaded(parentModule, 'CoreModule');
// ensure default platform language is set
translate.use(lang);
}
}