32 lines
832 B
TypeScript
32 lines
832 B
TypeScript
|
import { NgModule, ModuleWithProviders } from '@angular/core';
|
||
|
|
||
|
import { StoreModule } from '@ngrx/store';
|
||
|
import { EffectsModule } from '@ngrx/effects';
|
||
|
|
||
|
import { ModuleConfig } from './config/module-config';
|
||
|
import { _MODULE_CONFIG } from './config/token';
|
||
|
|
||
|
import { KEY_FEATURE } from './store/state';
|
||
|
import { effects } from './store/effects';
|
||
|
import { reducers } from './store/reducers';
|
||
|
|
||
|
@NgModule({
|
||
|
imports: [
|
||
|
StoreModule.forFeature(KEY_FEATURE, reducers),
|
||
|
EffectsModule.forFeature([...effects])
|
||
|
]
|
||
|
})
|
||
|
export class GroupStoreRootModule {}
|
||
|
|
||
|
@NgModule({})
|
||
|
export class GroupStoreModule {
|
||
|
public static forRoot(
|
||
|
config: ModuleConfig
|
||
|
): ModuleWithProviders<GroupStoreRootModule> {
|
||
|
return {
|
||
|
ngModule: GroupStoreRootModule,
|
||
|
providers: [{ provide: _MODULE_CONFIG, useValue: config }]
|
||
|
};
|
||
|
}
|
||
|
}
|