@w11k/rx-ninja
TypeScript icon, indicating that this package has built-in type declarations

5.0.0 • Public • Published

Build Status npm version

rx-ninja

Utilities for RxJS. Provides additional operators as well as tslint rules to avoid common mistakes.

API Documentation

Please see API documentation

Operators

Please use the API documentation for an always up-to-date list of all included operators. The API documentation also contains detailed descriptions, examples and marble diagrams.

TSLint rules

Installation

Adjust your tslint.json

{
  "rulesDirectory": [
    "node_modules/@w11k/rx-ninja/dist/bundle/tslint_rules"
  ],
  "rules": {
    "rx-ninja-subscribe-takeuntil": true,
    "rx-ninja-subscribe-in-subscribe": true
  }
}

Run tslint with type info

tslint -p tsconfig.json -t verbose

Rule descriptions

rx-ninja-subscribe-takeuntil

This rule triggers when Observable#subscribe() is called and then enforces that

  • .pipe() is called directly before .subscribe()
  • and that either takeUntil() or one of a specified finalizer operators is called as the last pipe operator

You can filter the files where this rules applies with fileSuffix and excludedFileSuffix.

Configuration:

"rx-ninja-subscribe-takeuntil": [
    true,
    {
        "finalizer": [
            "takeUntil",
            "customOperator",
            "anotherOperator"
        ],
        "fileSuffix": [
            ".ts"
        ],
        "excludedFileSuffix": [
          ".spec.ts",
          ".test.ts"
        ]
    }
]

rx-ninja-subscribe-in-subscribe

This rule triggers when Observable#subscribe() is called inside another Observable#subscribe() call, e.g.

import {of} from "rxjs";

of(1).subscribe(() => {
    of(2).subscribe(); // <-- error
});

Utilities

Patrons

❤️ W11K - The Web Engineers

❤️ theCodeCampus - Trainings for Angular and TypeScript

Thanks

  • Diagram generation from RxJS

Readme

Keywords

none

Package Sidebar

Install

npm i @w11k/rx-ninja

Weekly Downloads

366

Version

5.0.0

License

Apache-2.0

Unpacked Size

446 kB

Total Files

363

Last publish

Collaborators

  • kaihenzler
  • romanroe
  • sengmann
  • fvonberg
  • m_sallat
  • pburgmer