Tinkoff / linters

Tinkoff ESlint, Stylelint and Prettier linter configurations
Apache License 2.0
124 stars 24 forks source link

[eslint config] Eslint fails if tsconfig extends multiple files #244

Open sgrigorev opened 1 year ago

sgrigorev commented 1 year ago

Typescript v5 introduced the feature that allows to extend from multiple tsconfig files, e.g

{
  "extends": ["@tinkoff/typescript-config/tsconfig.base", "@tsconfig/node16/tsconfig.json"],
  "compilerOptions": {}
  ...
}

If a project uses such tsconfig.json, the eslint fails with error

Oops! Something went wrong! :(

ESLint: 8.45.0

TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received an instance of Array
Occurred while linting "..."
Rule: "import/no-cycle"
    at new NodeError (node:internal/errors:387:5)
    at validateString (node:internal/validators:162:11)
    at Object.join (node:path:1172:7)
   ...

There is an issue in eslint-plugin-import https://github.com/import-js/eslint-plugin-import/issues/2751

I see 2 possible solutions:

  1. Since the author is not interested in solving the problem, we can migrate to eslint-plugin-i, which is actually fork of eslint-plugin-import with some improvements.
  2. Override the tsconfig-paths in package.json
    "overrides":{
    "tsconfig-paths": "^4.0.0"
    },