10562 Commits

Author SHA1 Message Date
Thomas Burleson
57d6b0bd93 feat(ngrx): add support for NgRx Facade classes
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
2018-07-29 13:42:44 -04:00
Thomas Burleson
aa1b7766c5 fix(ngrx): fix lint issues in schematic templates
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.
2018-07-29 11:30:04 -04:00
Sam Severance
829fb32614 fix(schematics): fix ngrx effect services being provided 2x
* Remove `TodoEffects` from `providers` because it is already
  provided when calling `EffectsModule.forRoot([TodoEffects])`
2018-07-26 10:45:31 -04:00
swseverance
e1984fa40e fix(schematics): update devDependencies (#637)
* Move @ngrx/store-devtools and ngrx-store-freeze' to devDependencies
2018-07-22 12:30:31 -05:00
Thomas Burleson
04e99b06ae fix(schematics): ngrx schematics should generate enhanced ngrx files
@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.
2018-07-21 21:13:48 -04:00
--get
a55412caae fix(schematics): fix breaking cli by installing globally via yarn 2018-07-20 12:03:14 -04:00
Jason Jean
4a587e392d feat(schematics): create global karma conf 2018-07-20 12:00:05 -04:00
Victor Savkin
f4cea656d0 chore: update license 2018-07-11 12:41:12 -04:00
Leigh Caplan
d38700ead7 refactor(nx): simplify DataPersistence methods 2018-07-09 11:35:42 -04:00
Leigh Caplan
2fc57955cd refactor(nx): avoid double filter of navigation actions 2018-07-09 11:35:42 -04:00
Leigh Caplan
1e9871e6d7 feat(nx): Allow DataPersistence to take action streams
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.
2018-07-09 11:35:42 -04:00
Jonathan Cammisuli
b960480fce feat(schematics): make sure that libs are built to their own directory 2018-07-09 11:29:27 -04:00
Jonathan Cammisuli
e3af8984e4 test(schematics): update unit tests to check new ouput path for libraries 2018-07-09 11:29:27 -04:00
Jonathan Cammisuli
560311079a feat(schematics): output built libraries to dist/lib/@scope 2018-07-09 11:29:27 -04:00
Jonathan Cammisuli
2ce49ca7ce feat(schematics) update ng-package and ng-package.prod.json 2018-07-09 11:29:27 -04:00
Jonathan Cammisuli
fecce40000 style(schematics) fix formatting on library schematic 2018-07-09 11:29:27 -04:00
Jonathan Cammisuli
5b3f0ae92b test(schematics) add tests to check if ng-package.prod.json is updated for publishable libraries 2018-07-09 11:29:27 -04:00
Jonathan Cammisuli
73d0fb21d0 feat(schematics) check to see if a library is publishable before trying to update ng-package.prod.json 2018-07-09 11:29:27 -04:00
Jonathan Cammisuli
9ce52af41f feat(schematics) include npmScope in ng-package.prod.json
The ng-package.prod.js dest property now includes the `@npmScope`. This allows prod builds of libraries to be under the same directory
2018-07-09 11:29:27 -04:00
Jonathan Cammisuli
4916c7ce88 test(schematics): update ng-add e2e tests to check for new 'affected:libs' property 2018-07-09 11:27:47 -04:00
Jonathan Cammisuli
2a31bdb4e5 feat(schematics): add "affected:libs" to package.json when using ng add
Also use `===` for comparisons
2018-07-09 11:27:47 -04:00
Jonathan Cammisuli
ee1eb2cf82 style(schematics): change e2e it descriptions to previous name 2018-07-09 11:27:47 -04:00
Jonathan Cammisuli
72e3eed599 style(schematics): format command-line.test.ts 2018-07-09 11:27:47 -04:00
Jonathan Cammisuli
ea15cf2a94 test(schematics): add e2e tests for building publishable libs 2018-07-09 11:27:47 -04:00
Jonathan Cammisuli
d16caf9b66 feat(schematics): add getAffectedBuildables function
This function filters on the `build` property in project's architect
2018-07-09 11:27:47 -04:00
Jonathan Cammisuli
3a1796a5d1 fix(schematics): update arguments to better match expectations
Changes `nx affected:libs` to print out library names. Changes `nx affected:build` to build all projects that have the `build` architype
2018-07-09 11:27:47 -04:00
Jonathan Cammisuli
7db42520a4 feat(schematics): add an option to build affected libs
`nx affected:lib --base=master` will build only libraries that were affected
2018-07-09 11:27:47 -04:00
Jason Jean
80b243eaca fix(schematics) change readme instructions to use --project 2018-06-21 18:00:08 -04:00
Victor Savkin
2403e23fe9 Release 6.1.0 2018-06-14 12:04:05 -04:00
Jason Jean
42533b1f33 fix(schematics) add nx.json to ng-new schematic 2018-06-14 12:02:44 -04:00
Jason Jean
0ad61c7acb feat(schematics): deprecate nx update 2018-06-14 12:02:29 -04:00
Victor Savkin
72f546acda fix(schematics): update migration script to update to Nx 6.1.0 2018-06-14 11:09:18 -04:00
Victor Savkin
96425833e2 fix(schematics): remove no-trailing-whitespace lint check 2018-06-14 10:42:30 -04:00
Jason Jean
577c72ba78 feat(schematics): allow isolation of failed affected commands 2018-06-13 17:13:32 -04:00
Victor Savkin
db4f8d1cb0 update readme 2018-06-12 09:27:55 -04:00
Victor Savkin
fca224e0ad cleanup(schematics): removes an old path mapping 2018-06-11 15:19:29 -04:00
Victor Savkin
583d6cb575 Release 6.1.0-beta.2 2018-06-11 14:28:05 -04:00
Victor Savkin
eda5a13177 feat(schematics): add an option to run affected:* by only specifying --base 2018-06-11 12:12:11 -04:00
Victor Savkin
f80061d37d feat(schematics): add --all to all affected:* commands 2018-06-11 12:12:11 -04:00
Victor Savkin
f99210a5e2 fix(schematics): update create-nx-workspace to use the latest stable version of the @nrwl/bazel package 2018-06-11 10:32:59 -04:00
Victor Savkin
f00ff2c7d2 feat(schematics): add nx.json to the default list of implicit deps 2018-06-11 10:26:08 -04:00
Victor Savkin
e2baeafb9c Release 6.1.0-beta.1 2018-06-09 13:01:11 -04:00
Jason Jean
fae5788dce fix(schematics) affect a project by deleting a file 2018-06-09 12:57:20 -04:00
Jason Jean
caa5274fad feat(schematics) add migration for implicitDependencies 2018-06-09 12:54:33 -04:00
Victor Savkin
55b7386b99 fix(schematics): remove fit 2018-06-07 20:55:21 -04:00
Jason Jean
9aab6f39e0 feat(schematics): add implicit dependencies 2018-06-07 20:42:30 -04:00
Jason Jean
d2350c4e86 feat(schematics): fail gracefully and warn when project is missing a format npm script 2018-06-07 20:40:14 -04:00
Jason Jean
e18f94e566 feat(schematics) add migration to add affected:lint npm script 2018-06-02 18:36:33 -04:00
Jason Jean
1ec9af56fd fix(schematics): add rxjs-compat during ng-add 2018-06-02 18:23:06 -04:00
Jason Jean
dd0a93251a fix(schematics): allow projects without e2e configurations and report more useful errors during add and update 2018-06-02 18:22:51 -04:00