From 34d0ac9d181bd8dc8a947b7f3a110c3a1e3ee5e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BD=D1=82=D0=BE=D0=BD?= Date: Wed, 14 Aug 2024 05:15:53 +0300 Subject: [PATCH] add ngrx --- angular.json | 5 ++-- package-lock.json | 60 +++++++++++++++++++++++++++++++++---------- package.json | 15 ++++++----- src/app/app.config.ts | 5 ++-- 4 files changed, 62 insertions(+), 23 deletions(-) diff --git a/angular.json b/angular.json index e5ab9a3..a70177c 100644 --- a/angular.json +++ b/angular.json @@ -109,7 +109,8 @@ }, "cli": { "schematicCollections": [ - "@angular-eslint/schematics" + "@angular-eslint/schematics", + "@ngrx/schematics" ] } -} +} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index ed37ee4..385b083 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,8 +16,10 @@ "@angular/platform-browser": "17.0.0", "@angular/platform-browser-dynamic": "17.0.0", "@angular/router": "17.0.0", - "@ngrx/effects": "^17.2.0", - "@ngrx/store": "^17.2.0", + "@ngrx/effects": "17.2.0", + "@ngrx/entity": "17.2.0", + "@ngrx/store": "17.2.0", + "@ngrx/store-devtools": "17.2.0", "rxjs": "7.8.0", "tslib": "2.3.0", "zone.js": "0.14.2" @@ -31,12 +33,13 @@ "@angular-eslint/template-parser": "17.1.1", "@angular/cli": "17.0.6", "@angular/compiler-cli": "17.0.0", - "@ngrx/eslint-plugin": "^17.2.0", + "@ngrx/eslint-plugin": "17.2.0", + "@ngrx/schematics": "^18.0.2", "@types/jasmine": "5.1.0", "@typescript-eslint/eslint-plugin": "6.13.1", "@typescript-eslint/parser": "6.13.1", - "eslint": "^8.54.0", - "eslint-config-google": "^0.14.0", + "eslint": "8.54.0", + "eslint-config-google": "0.14.0", "jasmine-core": "5.1.0", "karma": "6.4.0", "karma-chrome-launcher": "3.2.0", @@ -2878,9 +2881,9 @@ } }, "node_modules/@eslint/js": { - "version": "8.55.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.55.0.tgz", - "integrity": "sha512-qQfo2mxH5yVom1kacMtZZJFVdW+E70mqHMJvVg6WTLo+VBuQJ4TojZlfWBjK0ve5BdEeNAVxOsl/nvNMpJOaJA==", + "version": "8.54.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.54.0.tgz", + "integrity": "sha512-ut5V+D+fOoWPgGGNj83GGjnntO39xDy6DWxO0wb7Jp3DcMX0TfIqdzHF85VTQkerdyGmuuMD9AKAo5KiNlf/AQ==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -3151,6 +3154,19 @@ "rxjs": "^6.5.3 || ^7.5.0" } }, + "node_modules/@ngrx/entity": { + "version": "17.2.0", + "resolved": "https://registry.npmjs.org/@ngrx/entity/-/entity-17.2.0.tgz", + "integrity": "sha512-epXgojGXCrVMNrFdv60704iRUU+pYkE1qHBppP/wqKbZZIZHaagsg2jy8/ptDP7U3udvVq0z9suc1s+zpmL2EA==", + "dependencies": { + "tslib": "^2.0.0" + }, + "peerDependencies": { + "@angular/core": "^17.0.0", + "@ngrx/store": "17.2.0", + "rxjs": "^6.5.3 || ^7.5.0" + } + }, "node_modules/@ngrx/eslint-plugin": { "version": "17.2.0", "resolved": "https://registry.npmjs.org/@ngrx/eslint-plugin/-/eslint-plugin-17.2.0.tgz", @@ -3178,6 +3194,12 @@ "rxjs": "^6.5.3 || ^7.4.0" } }, + "node_modules/@ngrx/schematics": { + "version": "18.0.2", + "resolved": "https://registry.npmjs.org/@ngrx/schematics/-/schematics-18.0.2.tgz", + "integrity": "sha512-vJZyH6ngJuGL/kd6XBRmp5hh1ik3KiE12CkRWSi7ha7fDNaXIdfGNj02oaXlRG/GvJFQOG/BQlxKkMTUviuaGw==", + "dev": true + }, "node_modules/@ngrx/store": { "version": "17.2.0", "resolved": "https://registry.npmjs.org/@ngrx/store/-/store-17.2.0.tgz", @@ -3190,6 +3212,18 @@ "rxjs": "^6.5.3 || ^7.5.0" } }, + "node_modules/@ngrx/store-devtools": { + "version": "17.2.0", + "resolved": "https://registry.npmjs.org/@ngrx/store-devtools/-/store-devtools-17.2.0.tgz", + "integrity": "sha512-ig0qr6hMexZGnrlxfHvZmu5CanRjH7hhx60XUbB5BdBvWJIIRaWKPLcsniiDUhljAD87gvzrrilbCTiML38+CA==", + "dependencies": { + "tslib": "^2.0.0" + }, + "peerDependencies": { + "@ngrx/store": "17.2.0", + "rxjs": "^6.5.3 || ^7.5.0" + } + }, "node_modules/@ngtools/webpack": { "version": "17.0.6", "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-17.0.6.tgz", @@ -7022,15 +7056,15 @@ } }, "node_modules/eslint": { - "version": "8.55.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.55.0.tgz", - "integrity": "sha512-iyUUAM0PCKj5QpwGfmCAG9XXbZCWsqP/eWAWrG/W0umvjuLRBECwSFdt+rCntju0xEH7teIABPwXpahftIaTdA==", + "version": "8.54.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.54.0.tgz", + "integrity": "sha512-NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.55.0", + "@eslint/eslintrc": "^2.1.3", + "@eslint/js": "8.54.0", "@humanwhocodes/config-array": "^0.11.13", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", diff --git a/package.json b/package.json index a38eebc..f7d80a2 100644 --- a/package.json +++ b/package.json @@ -19,8 +19,10 @@ "@angular/platform-browser": "17.0.0", "@angular/platform-browser-dynamic": "17.0.0", "@angular/router": "17.0.0", - "@ngrx/effects": "^17.2.0", - "@ngrx/store": "^17.2.0", + "@ngrx/effects": "17.2.0", + "@ngrx/entity": "17.2.0", + "@ngrx/store": "17.2.0", + "@ngrx/store-devtools": "17.2.0", "rxjs": "7.8.0", "tslib": "2.3.0", "zone.js": "0.14.2" @@ -34,12 +36,13 @@ "@angular-eslint/template-parser": "17.1.1", "@angular/cli": "17.0.6", "@angular/compiler-cli": "17.0.0", - "@ngrx/eslint-plugin": "^17.2.0", + "@ngrx/eslint-plugin": "17.2.0", + "@ngrx/schematics": "^18.0.2", "@types/jasmine": "5.1.0", "@typescript-eslint/eslint-plugin": "6.13.1", "@typescript-eslint/parser": "6.13.1", - "eslint": "^8.54.0", - "eslint-config-google": "^0.14.0", + "eslint": "8.54.0", + "eslint-config-google": "0.14.0", "jasmine-core": "5.1.0", "karma": "6.4.0", "karma-chrome-launcher": "3.2.0", @@ -48,4 +51,4 @@ "karma-jasmine-html-reporter": "2.1.0", "typescript": "5.2.2" } -} \ No newline at end of file +} diff --git a/src/app/app.config.ts b/src/app/app.config.ts index d9a4391..6b837ff 100644 --- a/src/app/app.config.ts +++ b/src/app/app.config.ts @@ -1,10 +1,11 @@ -import { ApplicationConfig } from '@angular/core'; +import { ApplicationConfig, isDevMode } from '@angular/core'; import { provideRouter } from '@angular/router'; import { routes } from './app.routes'; import { provideStore } from '@ngrx/store'; import { provideEffects } from '@ngrx/effects'; +import { provideStoreDevtools } from '@ngrx/store-devtools'; export const appConfig: ApplicationConfig = { - providers: [provideRouter(routes), provideStore(), provideEffects()], + providers: [provideRouter(routes), provideStore(), provideEffects(), provideStoreDevtools({ maxAge: 25, logOnly: !isDevMode() })], };