eslint-plugin-rxjs icon indicating copy to clipboard operation
eslint-plugin-rxjs copied to clipboard

ESLint v9 support

Open json-derulo opened this issue 10 months ago • 10 comments

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.

json-derulo avatar Apr 17 '24 10:04 json-derulo

Also ESLint v9 requires the new flat config which this plugin doesn't support yet.

Servonius avatar May 07 '24 05:05 Servonius

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.

json-derulo avatar May 07 '24 10:05 json-derulo

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",
    },
  },
);

rylorin avatar May 11 '24 06:05 rylorin

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).

dubzzz avatar Jun 03 '24 07:06 dubzzz

Hello there! Any chances to see this plugin upgraded to support ESLint 9 in the next few weeks?

Sebi11 avatar Aug 06 '24 06:08 Sebi11

Support for ESLint v8 ends in two months, so it would be great to get this resolved soon.

reduckted avatar Aug 06 '24 07:08 reduckted

Can this now be considered abandonware?

fast-facts avatar Aug 30 '24 17:08 fast-facts

https://github.com/ReactiveX/rxjs/discussions/7492

reduckted avatar Aug 30 '24 23:08 reduckted

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.

rbirkgit avatar Sep 16 '24 19:09 rbirkgit

Look like it's really dead. Will have to remove it from our projects.

AbakumovAlexandr avatar Sep 16 '24 21:09 AbakumovAlexandr