Skip to content

Commit

Permalink
Update to eslint 9 and ts-eslint 8
Browse files Browse the repository at this point in the history
Fixes #75
  • Loading branch information
sweepline committed May 24, 2024
1 parent d77f8e4 commit 0ec9d5a
Show file tree
Hide file tree
Showing 7 changed files with 284 additions and 232 deletions.
32 changes: 13 additions & 19 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,11 @@ Find and remove unused es6 module imports. It works by splitting up the `no-unus

## _Versions_

- Version 4.x.x is for eslint 9 with @typescript-eslint/eslint-plugin 8
- Version 3.x.x is for eslint 8 with @typescript-eslint/eslint-plugin 6 - 7
- Version 2.x.x is for eslint 8 with @typescript-eslint/eslint-plugin 5
- Version 1.x.x is for eslint 6 and 7.

## _Important for version 1.1_

The `-ts` rules are deprecated, the package now looks for `@typescript-eslint/eslint-plugin` to exist to decide between the typescript and eslint version.
The `-ts` rule will still work, but point to the new rule instead.

## Typescript

If running typescript with [@typescript-eslint](https://github.com/typescript-eslint/typescript-eslint) make sure to use both `@typescript-eslint/eslint-plugin` and `@typescript-eslint/parser`.
Expand All @@ -39,20 +35,18 @@ npm install eslint-plugin-unused-imports --save-dev

## Usage

Add `unused-imports` to the plugins section of your `.eslintrc` configuration file. You can omit the `eslint-plugin-` prefix:
Add `unused-imports` to the plugins section of your `.eslintrc` configuration file.

```jsonc
{
"plugins": [<other_plugins_you_use>, "unused-imports"]
}
```

Then configure the rules you want to use under the rules section. I can recommend adding a check for underscores, e.g.
import unusedImports from "eslint-plugin-unused-imports";

```jsonc
{
"rules": {
"no-unused-vars": "off", // or "@typescript-eslint/no-unused-vars": "off",
export default [{
plugins: {
"unused-imports": unusedImports,
},
rules: {
"no-unused-vars": "off",
"@typescript-eslint/no-unused-vars": "off",
"unused-imports/no-unused-imports": "error",
"unused-imports/no-unused-vars": [
"warn",
Expand All @@ -62,9 +56,9 @@ Then configure the rules you want to use under the rules section. I can recommen
"args": "after-used",
"argsIgnorePattern": "^_",
},
],
},
}
]
}
}];
```

## Supported Rules
Expand Down
5 changes: 3 additions & 2 deletions lib/__test__/no-unused-imports-ts.test.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
RuleTester = require("eslint").RuleTester;
const tsParser = require("@typescript-eslint/parser");

const ruleTester = new RuleTester({
parser: require.resolve('@typescript-eslint/parser'),
parserOptions: {
languageOptions: {
parser: tsParser,
ecmaVersion: 2015,
sourceType: "module",
},
Expand Down
2 changes: 1 addition & 1 deletion lib/__test__/no-unused-imports.test.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
RuleTester = require("eslint").RuleTester;

const ruleTester = new RuleTester({
parserOptions: { ecmaVersion: 2015, sourceType: "module" },
languageOptions: { ecmaVersion: 2015, sourceType: "module" },
});

const cases = require("./cases");
Expand Down
17 changes: 11 additions & 6 deletions lib/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,15 @@
const noUnusedVars = require("./rules/no-unused-vars");
const noUnusedImports = require("./rules/no-unused-imports");

// import all rules in lib/rules
module.exports.rules = {
"no-unused-vars": noUnusedVars,
"no-unused-imports": noUnusedImports,
"no-unused-vars-ts": noUnusedVars,
"no-unused-imports-ts": noUnusedImports,
const plugin = {
meta: {},
configs: {},
rules: {
"no-unused-vars": noUnusedVars,
"no-unused-imports": noUnusedImports,
},
processors: {},
};

// import all rules in lib/rules
module.exports = plugin;
2 changes: 1 addition & 1 deletion lib/rules/load-rule.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,6 @@ try {
rule = tslint.rules["no-unused-vars"];
} catch (_) {
const eslint = require("eslint");
rule = new eslint.Linter().getRules().get("no-unused-vars");
rule = new eslint.Linter({ configType: "eslintrc" }).getRules().get("no-unused-vars");
}
module.exports = rule;
Loading

0 comments on commit 0ec9d5a

Please sign in to comment.