A library containing tagging decorators for @ngrx to help implementing the Nrwl conventions for @ngrx/effects.
Just install the package from npm.
npm i --save-dev @zalari/ngrx-utils
This package includes tagging decorators and classes for runtime evaluation.
Usage example:
// command types as string based enums
export enum ExampleCommandTypes {
Foo = '[Example] Foo'
}
// commands
export class FooCommand implements CommandAction {
readonly type = ExampleCommandTypes.Foo;
}
Tagging decorators for Actions
The effects are distinguished into two groups, Deciders and Transformers.
Action Deciders
Action Transformers
Additionally a command line tool is included to generate activity diagrams in the PlantUML file format from given effect files.
The cli tool can be run using ngrx-utils
.
If this somehow won't work, you can use node_modules/.bin/ngrx-utils
on Linux or Mac, or
node_modules/.bin/ngrx-utils.cmd
on Windows.
The options can be shown by running ngrx-utils --help
:
-V, --version output the version number
-c, --config <path> path to tsconfig.json
-s, --source <path> path to ngrx effects source file
-d, --diagram <activity|sequence> the diagram type to use (default: activity)
-h, --help output usage information
- A simple test case is:
ngrx-utils --config test/test.tsconfig.json --source test/test.effects.ts
. - Globbing source files:
ngrx-utils --config test/test.tsconfig.json --source **/*.effects.ts
. - Extended tsconfig.json:
ngrx-utils --config test/test-extending.tsconfig.json --source **/*.effects.ts
.
By default the Angular CLI creates a base
tsconfig.json
in the root directory which is extended by specific config files in thesrc
folder (e.g.tsconfig.app.json
) by using theextends
property. The CLI tool recognizes this property and loads all extended configs recursively and merges thecompilerOptions
.
The tests are based on Mocha and Chai.
npm run test