eslint-plugin-rxjs
eslint-plugin-rxjs copied to clipboard
ESLint v9 support
ESLint v9 has been released recently. This plugin has a peer dependency to ESLint ^8.0.0 and causes peer dependency conflicts with ESLint v9.
Also ESLint v9 requires the new flat config which this plugin doesn't support yet.
I got the plugin working in flat config format using ESLint v8, with the following config:
import rxjs from 'eslint-plugin-rxjs';
export default [
{
files: ['**/*.ts'],
plugins: { rxjs },
rules: { ...rxjs.configs.recommended.rules },
},
];
For configuring TypeScript ESLint in flat config, see their docs.
It didn't work for me, I had to do the following changes to my flat config file:
import { fixupPluginRules } from "@eslint/compat";
import eslint from "@eslint/js";
import prettier from "eslint-plugin-prettier/recommended";
import rxjs from "eslint-plugin-rxjs";
import tseslint from "typescript-eslint";
export default tseslint.config(
eslint.configs.recommended,
...tseslint.configs.recommended,
prettier,
{
...
plugins: { rxjs: fixupPluginRules(rxjs) },
rules: {
...
"rxjs/no-async-subscribe": "warn",
"rxjs/no-ignored-observable": "warn",
"rxjs/no-ignored-subscription": "warn",
"rxjs/no-unbound-methods": "warn",
"rxjs/throw-error": "warn",
},
},
);
I started to investigate the issue (I'm not related to the project), I think we should get rid-off the dependency called @typescript-eslint/experimental-utils
in favor of its official version called @typescript-eslint/utils
.
I did a first PR to patch eslint-etc. Once merged and rolled out I can open a similar one on eslint-plugin-rxjs to do the same (and maybe others).
Hello there! Any chances to see this plugin upgraded to support ESLint 9 in the next few weeks?
Support for ESLint v8 ends in two months, so it would be great to get this resolved soon.
Can this now be considered abandonware?
https://github.com/ReactiveX/rxjs/discussions/7492
We get this error when updating to ESLint 9.
Error: You have attempted to use a lint rule which requires the full TypeScript type-checker to be available, but you do not have `parserOptions.project` configured to point at your project tsconfig.json files in the relevant TypeScript file "overrides" block of your project ESLint config `src/.eslintrc.json`
We use typed rules and have parserOptions.project set properly. Commenting out rxjs/recommended usage, all linting work again.
Look like it's really dead. Will have to remove it from our projects.