eslint-plugin-rxjs-angular

ESLint rules for RxJS and Angular

Usage no npm install needed!

<script type="module">
  import eslintPluginRxjsAngular from 'https://cdn.skypack.dev/eslint-plugin-rxjs-angular';
</script>

README

eslint-plugin-rxjs-angular

GitHub License NPM version Downloads Build status dependency status devDependency Status peerDependency Status

This package contains ESLint versions of the Angular/RxJS rules that are in the rxjs-tslint-rules package.

There is no recommended configuration for this package, as all of the rules are opinionated.

Install

Install the ESLint TypeScript parser using npm:

npm install @typescript-eslint/parser --save-dev

Install the package using npm:

npm install eslint-plugin-rxjs-angular --save-dev

Configure the parser and the parserOptions for ESLint. Here, I use a .eslintrc.js file for the configuration:

const { join } = require("path");
module.exports = {
  parser: "@typescript-eslint/parser",
  parserOptions: {
    ecmaVersion: 2019,
    project: join(__dirname, "./tsconfig.json"),
    sourceType: "module"
  },
  plugins: ["rxjs-angular"],
  extends: [],
  rules: {
    "rxjs-angular/prefer-async-pipe": "error"
  }
};

Rules

The package includes the following rules:

Rule Description Recommended
prefer-async-pipe Forbids the calling of subscribe within Angular components. No
prefer-composition Forbids subscribe calls that are not composed within Angular components (and, optionally, within services, directives, and pipes). No
prefer-takeuntil Forbids Calling subscribe without an accompanying takeUntil. No