Add support to generate NgRx facade classes when the command `--facade` boolean option
is used.
```console
ng g ngrx <feature> --facade
```
> Note this will not generate facades for existing ngrx features; this option
is currently only available for *new* ngrx scaffolding.
* Add code generators for `<feature>.facade.ts` + `<feature>.facade.spec.ts`
Fixes#629. Fixes#638.
use entity
The ngrx schematic templates have some minor lint errors that manfiest in new ngrx generated code.
* In the ngrx e2e tests, add check for tsLint errors in the generated code
* Fix lint issues for the upgrade-module and associated tests.
@nrwl/schematics no longer uses the @ngrx/schematics to generate NgRx feature files.
* `ngrx/files/__directory__` templates are used
* Templates replicate the simple outputs generated from @ngrx/schematics:feature
* Templates add significant Nx enhancements.
The following standard files will be scaffolded:
* `<feature>.actions.ts`
* `<feature>.effects.ts` + `<feature>.effects.spec.ts`
* `<feature>.reducer.ts` + `<feature>.reducer.spec.ts`
The following new files will also be scaffolded:
* `<feature>.selectors.ts` + `<feature>.selectors.spec.ts`
Changes include:
* Change the action/enums to generate a trio of enums for each *feature*: `Load<Feature>`, `<Feature>Loaded`, and `<Feature>LoadError`
* Add code generators for `<feature>.selectors.ts`
* Add code generators for unit and integration testing `*.spec.ts` files
* Update the public barrel [`index.ts`] when adding ngrx to a library
* Use `StoreModule.forFeature()` when adding ngrx feature (without using the `--root` option)
* Use the Effect to respond tp `load<Feature>$` and dispatch `<Feature>Loaded` or `<Feature>LoadError`
* Update the Action to export `<feature>Actions` map of all action classes
* fix `ng-add.test.ts` tests for latest Angular CLI scaffolding
* fix `application.spec.ts` expect fails
Fixes#472, Fixes#618, Fixes#317, Fixes#561, Refs #380.
Currently, DataPersistence methods such as `fetch` and
`optimisticUpdate` take a string as their first argument,
which they use to filter incoming action types. This can
lead to inflexibility in certain cases, such as when
you want to filter the action stream before it gets to
the DataPersistence handler, or when you want to handle
multiple action types with the same effect (as suggested
by Mike Ryan in his "Good Action Hygiene with NgRx talk:
https://www.youtube.com/watch?v=JmnsEvoy-gY)
This PR refactors `optimisticUpdate`, `pessimisticUpdate`,
`fetch` and `navigation` into pipeable operators, and
implements the existing DataPersistence methods in terms
of these operators. This allows users to continue using
instance methods and strings, but enables more advanced
cases where more control over the action and state streams
is needed.