/ngrx-utils

A library containing tagging decorators for @ngrx to help implementing the Nrwl conventions for @ngrx/effects.

Primary LanguageTypeScriptMIT LicenseMIT

Build Status GitHub version npm version

Ngrx utils

A library containing tagging decorators for @ngrx to help implementing the Nrwl conventions for @ngrx/effects.

Getting started

Just install the package from npm.

npm i --save-dev @zalari/ngrx-utils

Runtime evaluation

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

CLI tool

Additionally a command line tool is included to generate activity diagrams in the PlantUML file format from given effect files.

Run

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.

Options

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

Example using the test data

  • 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 the src folder (e.g. tsconfig.app.json) by using the extends property. The CLI tool recognizes this property and loads all extended configs recursively and merges the compilerOptions.

Run tests

The tests are based on Mocha and Chai.

npm run test