}
}
},
+ "@ngrx/store": {
+ "version": "9.2.0",
+ "resolved": "https://registry.npmjs.org/@ngrx/store/-/store-9.2.0.tgz",
+ "integrity": "sha512-V8AI3mxbMztVpbZpALkLZYlGkofKcu9GaOCY5e+sZ1VcJ90oxhFjBpnmd6MuVdmhep1XAHALb1B8ZbBFn+xsgQ=="
+ },
"@ngtools/webpack": {
"version": "9.1.4",
"resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-9.1.4.tgz",
"@angular/platform-browser": "~9.1.5",
"@angular/platform-browser-dynamic": "~9.1.5",
"@angular/router": "~9.1.5",
+ "@ngrx/store": "^9.2.0",
"angular-in-memory-web-api": "^0.11.0",
"rxjs": "~6.5.5",
"tslib": "^1.10.0",
import { MessagesComponent } from './messages/messages.component';
import { DashboardComponent } from './dashboard/dashboard.component';
import { HeroSearchComponent } from './hero-search/hero-search.component';
+import { StoreModule } from '@ngrx/store';
+import { reducers, metaReducers } from './reducers';
@NgModule({
declarations: [
// Remove it when a real server is ready to receive requests.
HttpClientInMemoryWebApiModule.forRoot(
InMemoryDataService, { dataEncapsulation: false }
- )
+ ),
+
+ StoreModule.forRoot(reducers, {
+ metaReducers
+ })
],
providers: [],
bootstrap: [AppComponent]
--- /dev/null
+import {
+ ActionReducer,
+ ActionReducerMap,
+ createFeatureSelector,
+ createSelector,
+ MetaReducer
+} from '@ngrx/store';
+import { environment } from '../../environments/environment';
+
+export interface State {
+
+}
+
+export const reducers: ActionReducerMap<State> = {
+
+};
+
+
+export const metaReducers: MetaReducer<State>[] = !environment.production ? [] : [];