@nstudio/schematics
Version:
Cross-platform (xplat) tools for Nx workspaces.
67 lines (60 loc) • 1.91 kB
text/typescript
import { NgModule, Optional, SkipSelf } from '@angular/core';
// nativescript
import { NativeScriptModule } from 'nativescript-angular/nativescript.module';
import { NativeScriptHttpClientModule } from 'nativescript-angular/http-client';
import { device } from 'tns-core-modules/platform';
import { TNSFontIconModule } from 'nativescript-ngx-fonticon';
// libs
import { TranslateLoader, TranslateModule } from '@ngx-translate/core';
import { CoreModule, PlatformLanguageToken, PlatformWindowToken } from '@<%= npmScope %>/core';<% if (sample) { %>
import { ITEM_PROVIDERS } from '@<%= npmScope %>/features';<% } %>
import { throwIfAlreadyLoaded } from '@<%= npmScope %>/utils';
// app
import { PROVIDERS } from './services';
import { TNSWindowService } from './services/tns-window.service';
import { TNSTranslateLoader } from './services/tns-translate.loader';
// factories
export function platformLangFactory() {
return device.language;
}
export function createTranslateLoader() {
return new TNSTranslateLoader('/assets/i18n/');
}
({
imports: [
NativeScriptModule,
NativeScriptHttpClientModule,
TNSFontIconModule.forRoot({
fa: './assets/fontawesome.min.css'
}),
CoreModule.forRoot([
{
provide: PlatformLanguageToken,
useFactory: platformLangFactory
},
{
provide: PlatformWindowToken,
useClass: TNSWindowService
}
]),
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useFactory: createTranslateLoader
}
}),
],
providers: [
...PROVIDERS<% if (sample) { %>,
...ITEM_PROVIDERS<% } %>
]
})
export class <%= utils.classify(prefix) %>CoreModule {
constructor(
()
()
parentModule: <%= utils.classify(prefix) %>CoreModule
) {
throwIfAlreadyLoaded(parentModule, '<%= utils.classify(prefix) %>CoreModule');
}
}