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.jsonin the root directory which is extended by specific config files in thesrcfolder (e.g.tsconfig.app.json) by using theextendsproperty. 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