{"id":19925,"library":"eslint-plugin-rxjs-angular-x","title":"eslint-plugin-rxjs-angular-x","description":"Fork of the unmaintained eslint-plugin-rxjs-angular to provide ESLint v10+ rules for combining RxJS 7 with Angular. Current stable v1.0.1 requires ESLint ^10.0.0, Node ^20.19.0 || ^22.13.0 || >=24, TypeScript >=4.8.4 <6.1.0, and is ESM-only (no CJS support). Ships TypeScript types. Includes three rules requiring type information: prefer-async-pipe, prefer-composition, prefer-takeuntil. Regular releases with breaking changes between majors.","status":"active","version":"1.0.1","language":"javascript","source_language":"en","source_url":"https://github.com/JasonWeinzierl/eslint-plugin-rxjs-angular-x","tags":["javascript","lint","rules","eslint","rxjs","angular","typescript"],"install":[{"cmd":"npm install eslint-plugin-rxjs-angular-x","lang":"bash","label":"npm"},{"cmd":"yarn add eslint-plugin-rxjs-angular-x","lang":"bash","label":"yarn"},{"cmd":"pnpm add eslint-plugin-rxjs-angular-x","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"peer dependency - required to run rules","package":"eslint","optional":false},{"reason":"peer dependency - plugin checks RxJS usage patterns","package":"rxjs","optional":false},{"reason":"peer dependency - rules need TypeScript type information","package":"typescript","optional":false},{"reason":"runtime dependency for ESLint utility functions","package":"@typescript-eslint/utils","optional":false},{"reason":"runtime dependency for TypeScript API utilities","package":"ts-api-utils","optional":false}],"imports":[{"note":"Plugin is ESM-only since v1.0.0. CommonJS require will throw.","wrong":"const rxjsAngularX = require('eslint-plugin-rxjs-angular-x')","symbol":"default (plugin object)","correct":"import rxjsAngularX from 'eslint-plugin-rxjs-angular-x'"},{"note":"ESM named export. Works with destructuring.","wrong":"","symbol":"rules","correct":"import { rules } from 'eslint-plugin-rxjs-angular-x'"},{"note":"Named export for configs object. v0.1.0+.","wrong":"","symbol":"configs","correct":"import { configs } from 'eslint-plugin-rxjs-angular-x'"}],"quickstart":{"code":"// @ts-check\nimport { defineConfig } from 'eslint/config';\nimport tseslint from 'typescript-eslint';\nimport rxjsAngularX from 'eslint-plugin-rxjs-angular-x';\n\nexport default defineConfig({\n  extends: [\n    ...tseslint.configs.recommended,\n  ],\n  languageOptions: {\n    parserOptions: {\n      projectService: true,\n    },\n  },\n  plugins: {\n    'rxjs-angular-x': rxjsAngularX,\n  },\n  rules: {\n    'rxjs-angular-x/prefer-async-pipe': 'error',\n    'rxjs-angular-x/prefer-takeuntil': [\n      'error',\n      {\n        checkComplete: true,\n        checkDecorators: ['Component', 'Directive', 'Injectable'],\n        alias: ['takeUntilDestroyed'],\n        checkDestroy: false,\n      },\n    ],\n  },\n});","lang":"typescript","description":"Flat ESLint config using eslint-plugin-rxjs-angular-x with type-aware linting and two example rules."},"warnings":[{"fix":"Switch to ESM imports (import ... from 'eslint-plugin-rxjs-angular-x') or downgrade to v0.x.","message":"ESM-only since v1.0.0. CommonJS require fails.","severity":"breaking","affected_versions":">=1.0.0"},{"fix":"Upgrade ESLint to ^10.0.0.","message":"Requires ESLint v10 (was v9 in v0.x).","severity":"breaking","affected_versions":">=1.0.0"},{"fix":"Use Node.js ^20.19.0 || ^22.13.0 || >=24.","message":"Node.js v18 no longer supported since v1.0.0.","severity":"breaking","affected_versions":">=1.0.0"},{"fix":"Ensure rxjs version is ^7.2.0.","message":"rxjs peer dependency upper-bounded to ^7.2.0 in v0.1.2+. RxJS 8 is not supported.","severity":"breaking","affected_versions":">=0.1.2"},{"fix":"Use TypeScript >=4.8.4 <6.1.0.","message":"TypeScript peer dependency upper-bounded to <6.1.0 in v1.0.1 (was <6.0.0 in v0.1.2).","severity":"breaking","affected_versions":">=0.1.2"},{"fix":"Configure languageOptions.parserOptions.projectService: true (or project: './tsconfig.json'). See typescript-eslint typed linting guide.","message":"All rules require TypeScript type information (marked with 💭).","severity":"gotcha","affected_versions":">=0.0.1"},{"fix":"Review rule docs and migration guide in README if migrating from the original plugin.","message":"This plugin is a fork of the unmaintained eslint-plugin-rxjs-angular. Rules and options may differ slightly.","severity":"gotcha","affected_versions":">=0.0.1"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"Use ESM import syntax (import rxjsAngularX from 'eslint-plugin-rxjs-angular-x') or downgrade to v0.x.","cause":"Using CommonJS require() on v1.0.0+ which is ESM-only.","error":"Error [ERR_REQUIRE_ESM]: require() of ES Module .../eslint-plugin-rxjs-angular-x/index.js from ... not supported."},{"fix":"Run 'npm install eslint-plugin-rxjs-angular-x' and use ESM import in flat config.","cause":"Plugin not installed, or ESM/CJS mismatch (e.g., flat config using CJS require).","error":"ESLint configuration error: Cannot find module 'eslint-plugin-rxjs-angular-x'"},{"fix":"Install typescript >=4.8.4 <6.1.0 as a dev dependency.","cause":"Missing or incompatible typescript peer dependency.","error":"Failed to load parser 'typescript-eslint/parser' (or 'Error: @typescript-eslint/parser requires TypeScript >=4.8.4')."},{"fix":"Add parserOptions.projectService: true (or project: './tsconfig.json') to your ESLint config.","cause":"Type information not configured (projectService or project missing).","error":"Error: Rule 'rxjs-angular-x/prefer-async-pipe' requires type information."},{"fix":"Install @typescript-eslint/utils ^8.56.0 (or let npm/pnpm handle peer deps).","cause":"Missing dependency on @typescript-eslint/utils (peer of eslint-plugin-rxjs-angular-x).","error":"Cannot find module '@typescript-eslint/utils'"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}