feat!: ESLint 9 Fixes (#307)

* chore: update postinstall scripts
* chore(lint): eslint automated fixes
* feat!: drop standard, sonarjs to work with eslint9

- This config allows arrow functions.

BREAKING CHANGES:

- Switches to eslint-config-eslint from eslint-config-standard.
- Also drops eslint-plugins-sonarjs because it doesn't work well
  with eslint9, and wants eslint8 and related plugins.
- Switches from eslint-plugin-prettier to eslint-config-prettier.
This commit is contained in:
Ismo Vuorinen
2024-11-25 03:35:13 +02:00
committed by GitHub
parent 006dc9b947
commit 6d6f4582dd
16 changed files with 1295 additions and 760 deletions

View File

@@ -26,7 +26,7 @@ npm install @ivuorinen/eslint-config --save-dev
yarn add @ivuorinen/eslint-config --dev
```
After installing it, a _`.eslintrc.json`_ file will be created automatically in the project's root folder with the following configuration:
After installing it, a _`eslint.config.mjs`_ file will be created automatically in the project's root folder with the following configuration:
```json
{

View File

@@ -1,16 +1,32 @@
'use strict'
const globals = require('globals')
const configEslint = require('eslint-config-eslint')
const configPrettier = require('eslint-config-prettier')
const pluginImport = require('eslint-plugin-import')
const pluginJs = require('@eslint/js')
const standard = require('eslint-config-standard')
const pluginN = require('eslint-plugin-n')
const pluginPromise = require('eslint-plugin-promise')
const pluginImport = require('eslint-plugin-import')
const pluginPrettier = require('eslint-plugin-prettier')
const pluginSonarJS = require('eslint-plugin-sonarjs')
/**
* @type { import("eslint").Linter.Config[] } config eslint configuration.
*/
module.exports = [
...configEslint,
{
linterOptions: {
reportUnusedDisableDirectives: 'warn'
},
rules: {
'func-style': [
'error',
'declaration',
{
allowArrowFunctions: true
}
]
}
},
{
files: ['**/*.{js,mjs,cjs}'],
languageOptions: {
@@ -30,12 +46,10 @@ module.exports = [
plugins: {
n: pluginN,
import: pluginImport,
promise: pluginPromise,
prettier: pluginPrettier,
sonarjs: pluginSonarJS
},
rules: standard.rules
promise: pluginPromise
}
},
configPrettier,
{
ignores: ['coverage/', 'dist/', 'lib/', 'node_modules/']
}

View File

@@ -1,3 +1,5 @@
'use strict'
const jest = require('eslint-plugin-jest')
/**

View File

@@ -53,15 +53,15 @@
"dependencies": {
"@eslint/js": "^9",
"@ivuorinen/config-checker": "^1.1.8",
"eslint": "^9",
"eslint": "^9.15.0",
"eslint-config-eslint": "^11",
"eslint-config-prettier": "^9",
"eslint-config-standard": "^17",
"eslint-plugin-import": "^2",
"eslint-plugin-jest": "^28",
"eslint-plugin-n": "^17",
"eslint-plugin-promise": "^7",
"eslint-plugin-sonarjs": "^2",
"globals": "^15"
"globals": "^15",
"typescript": ">=4.2.0"
},
"gitHead": "23d15f15743fb59c1dbe658615ef2ed51c54d230"
}

View File

@@ -1,9 +1,10 @@
'use strict'
const fs = require('fs')
const path = require('path')
// noinspection NpmUsedModulesInstalled
const process = require('process')
/* eslint no-console: "off", n/no-process-exit: "off" -- CLI app that gives users feedback */
const fs = require('node:fs')
const path = require('node:path')
const process = require('node:process')
const checkConfig = require('@ivuorinen/config-checker')
const foundConfig = checkConfig('eslint')

File diff suppressed because it is too large Load Diff