first-npm-package-nicule
Version:
This isi first npm package
63 lines (55 loc) • 2.11 kB
text/typescript
import { FactoryProvider, ModuleWithProviders, NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { CommonModule } from '@angular/common';
import { TranslateModule } from '@ngx-translate/core';
import { StoreModule } from '@ngrx/store';
import { EffectsModule } from '@ngrx/effects';
import { HypermediaQueryBindingModule } from 'first-npm-package-nicule/models';
import { LinkDirective } from './directives';
import { ActionExecutor, HeaderProvider, HrefFormatterProvider, HypermediaStore, LabelingService, ProgressTracker, ResourceFetcher } from './services';
import { hypermediaReducers } from './reducers';
import { HypermediaEffects } from './effects';
import { RouterModule } from '@angular/router';
import { ProgressInterceptor } from './services/progress-interceptor';
import { HTTP_INTERCEPTORS } from '@angular/common/http';
const COMPONENTS = [
LinkDirective
];
({
imports: [
CommonModule,
TranslateModule,
RouterModule,
FormsModule,
HypermediaQueryBindingModule.forRoot(),
StoreModule.forFeature('hypermedia', hypermediaReducers),
EffectsModule.forFeature([HypermediaEffects]),
//ProgressHttpModule
],
declarations: COMPONENTS,
exports: COMPONENTS
})
export class HypermediaModule {
static forChild(): ModuleWithProviders {
return {
ngModule: HypermediaModule
};
}
static forRoot(applicationScopesFactory: FactoryProvider): ModuleWithProviders {
return {
ngModule: HypermediaModule,
providers: [
HypermediaEffects,
HypermediaStore,
applicationScopesFactory,
HrefFormatterProvider,
LabelingService,
ResourceFetcher,
ProgressTracker,
HeaderProvider,
ActionExecutor,
{ provide: HTTP_INTERCEPTORS, useClass: ProgressInterceptor, multi: true },
]
};
}
}