Similar to our @ngworker/router-component-store and @ngworker/router-signal-store packages, we want a @ngworker/router-store package.
The @ngworker/router-store package should have the same API as the other packages:
- A
RouterStore abstract class for dependency injection
- A
GlobalRouterStore implementation to replace @ngrx/router-store
- A
LocalRouterStore implementation to replace ActivatedRoute
provideLocalRouterStore() and provideGlobalRouterStore() for providers
The package must have no rxjs dependency except in tests. Instead, it should use Angular Signals from the @angular/core package. This is similar to @ngworker/router-signal-store except @ngworker/router-store should have no @ngrx/* dependency except in tests.
Use the @nx/angular:library generator to generate the library. Use the as-provided option to determine the path instead of derived.
Always test the npm ci command to verify the lockfile check formatting. Also check formatting, and run other CI scripts in package.json.
In the initial commit, you can leave out unit tests except for a selectors.spec.ts file similar to those for the other packages.
Similar to our
@ngworker/router-component-storeand@ngworker/router-signal-storepackages, we want a@ngworker/router-storepackage.The
@ngworker/router-storepackage should have the same API as the other packages:RouterStoreabstract class for dependency injectionGlobalRouterStoreimplementation to replace@ngrx/router-storeLocalRouterStoreimplementation to replaceActivatedRouteprovideLocalRouterStore()andprovideGlobalRouterStore()for providersThe package must have no
rxjsdependency except in tests. Instead, it should use Angular Signals from the@angular/corepackage. This is similar to@ngworker/router-signal-storeexcept@ngworker/router-storeshould have no@ngrx/*dependency except in tests.Use the
@nx/angular:librarygenerator to generate the library. Use theas-providedoption to determine the path instead ofderived.Always test the
npm cicommand to verify the lockfile check formatting. Also check formatting, and run other CI scripts inpackage.json.In the initial commit, you can leave out unit tests except for a
selectors.spec.tsfile similar to those for the other packages.