{"id":19924,"library":"eslint-plugin-rxjs-angular-updated","title":"eslint-plugin-rxjs-angular (updated for ESLint v9)","description":"Fork of cartant's eslint-plugin-rxjs-angular updated for ESLint v9 compatibility. Current version 1.0.50. Provides three opinionated ESLint rules for enforcing RxJS best practices in Angular components: prefer-async-pipe (forbids calling subscribe in components), prefer-composition (forbids non-composed subscribe calls), and prefer-takeuntil (forbids subscribe without takeUntil). Requires @typescript-eslint/parser and TypeScript project configuration. Not recommended for new projects; prefer the original package if ESLint v8 is acceptable.","status":"active","version":"1.0.50","language":"javascript","source_language":"en","source_url":"https://github.com/fast-facts/eslint-plugin-rxjs-angular","tags":["javascript","lint","rules","eslint","rxjs","angular","typescript"],"install":[{"cmd":"npm install eslint-plugin-rxjs-angular-updated","lang":"bash","label":"npm"},{"cmd":"yarn add eslint-plugin-rxjs-angular-updated","lang":"bash","label":"yarn"},{"cmd":"pnpm add eslint-plugin-rxjs-angular-updated","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Required by the ESLint rules for TypeScript parsing","package":"@typescript-eslint/parser","optional":false}],"imports":[{"note":"Use import to load the plugin; the package is ESM-only (no CJS export).","wrong":"// Do not require() in ESM context: const plugin = require('eslint-plugin-rxjs-angular-updated');","symbol":"plugin","correct":"// In eslint.config.js: import plugin from 'eslint-plugin-rxjs-angular-updated';"},{"note":"Rules are accessed via the plugin name in ESLint configuration, not by importing the 'rules' property.","wrong":"// Do not import rules directly: import { rules } from 'eslint-plugin-rxjs-angular-updated';","symbol":"rules","correct":"// In .eslintrc.js: plugins: ['rxjs-angular-updated']"},{"note":"Prefix changed from 'rxjs-angular' to 'rxjs-angular-updated' to avoid conflicts with the original package.","wrong":"// Do not use the original package prefix: 'rxjs-angular/prefer-async-pipe': 'error'","symbol":"prefer-async-pipe","correct":"// In ESLint config: 'rxjs-angular-updated/prefer-async-pipe': 'error'"}],"quickstart":{"code":"// eslint.config.js\nimport plugin from 'eslint-plugin-rxjs-angular-updated';\n\nexport default [\n  {\n    files: ['**/*.ts'],\n    languageOptions: {\n      parser: '@typescript-eslint/parser',\n      parserOptions: {\n        project: './tsconfig.json',\n      },\n    },\n    plugins: {\n      'rxjs-angular-updated': plugin,\n    },\n    rules: {\n      'rxjs-angular-updated/prefer-async-pipe': 'error',\n      'rxjs-angular-updated/prefer-takeuntil': 'error',\n    },\n  },\n];","lang":"typescript","description":"Minimal ESLint flat config (v9) setup using the updated plugin with two rules enabled."},"warnings":[{"fix":"Update ESLint config: replace 'rxjs-angular/' with 'rxjs-angular-updated/' in plugin and rule references.","message":"Plugin prefix changed from 'rxjs-angular' to 'rxjs-angular-updated'.","severity":"breaking","affected_versions":">=1.0.0"},{"fix":"Migrate to flat config (eslint.config.js) as shown in Quickstart.","message":"ESLint v9 flat config only; .eslintrc.* formats no longer supported.","severity":"breaking","affected_versions":">=1.0.0"},{"fix":"Consider using the original eslint-plugin-rxjs-angular if ESLint v8 is acceptable, or migrate to a maintained alternative.","message":"Package is a temporary fork; updates are limited to version bumps only.","severity":"deprecated","affected_versions":">=1.0.0"},{"fix":"Use 'rxjs-angular-updated/prefer-takeuntil' instead of 'rxjs-angular/prefer-takeuntil'.","message":"Rule names must be prefixed with 'rxjs-angular-updated/' not 'rxjs-angular'.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Ensure '@typescript-eslint/parser' and parserOptions.project point to valid tsconfig.json.","message":"Requires TypeScript parser and project configuration; rules will silently fail without 'project' in parserOptions.","severity":"gotcha","affected_versions":">=1.0.0"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"Run: npm install eslint-plugin-rxjs-angular-updated --save-dev","cause":"Package not installed or not found in node_modules.","error":"Error: Failed to load plugin 'rxjs-angular-updated'"},{"fix":"Run: npm install @typescript-eslint/parser --save-dev","cause":"Missing peer dependency @typescript-eslint/parser.","error":"Cannot find module '@typescript-eslint/parser'"},{"fix":"Ensure plugin is imported and added to 'plugins' object with key 'rxjs-angular-updated'.","cause":"Rule name uses wrong prefix or plugin not configured in plugins array.","error":"Definition for rule 'rxjs-angular-updated/prefer-async-pipe' was not found"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}