Skip to content

Commit ad1d60a

Browse files
authored
Merge pull request #314 from csfloat/chore/upgrade-eslint-9-prettier-3
Upgrade to ESLint 9 & Prettier 3
2 parents d2a35b3 + 47cf5ac commit ad1d60a

File tree

19 files changed

+1047
-1025
lines changed

19 files changed

+1047
-1025
lines changed

.eslintrc

Lines changed: 0 additions & 22 deletions
This file was deleted.

.github/workflows/lint.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ jobs:
1212

1313
strategy:
1414
matrix:
15-
node-version: [16.x]
15+
node-version: [20.x]
1616

1717
steps:
1818
- uses: actions/checkout@v3
@@ -24,6 +24,6 @@ jobs:
2424

2525
- name: Lint
2626
run: |
27-
npm install
27+
npm ci
2828
npm run lint
2929
npm run checkformat

.prettierrc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,6 @@
33
"singleQuote": true,
44
"bracketSpacing": false,
55
"semi": true,
6-
"printWidth": 120
6+
"printWidth": 120,
7+
"trailingComma": "es5"
78
}

eslint.config.mjs

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
import {defineConfig} from 'eslint/config';
2+
import typescriptEslint from '@typescript-eslint/eslint-plugin';
3+
import globals from 'globals';
4+
import tsParser from '@typescript-eslint/parser';
5+
import path from 'node:path';
6+
import {fileURLToPath} from 'node:url';
7+
import js from '@eslint/js';
8+
import {FlatCompat} from '@eslint/eslintrc';
9+
import {includeIgnoreFile} from '@eslint/compat';
10+
11+
const __filename = fileURLToPath(import.meta.url);
12+
const __dirname = path.dirname(__filename);
13+
const compat = new FlatCompat({
14+
baseDirectory: __dirname,
15+
recommendedConfig: js.configs.recommended,
16+
allConfig: js.configs.all,
17+
});
18+
19+
const lintIgnorePath = fileURLToPath(new URL('.lintignore', import.meta.url));
20+
21+
export default defineConfig([
22+
includeIgnoreFile(lintIgnorePath),
23+
{
24+
files: ['**/*.{js,ts}'],
25+
extends: compat.extends('eslint:recommended', 'plugin:@typescript-eslint/recommended', 'prettier'),
26+
27+
plugins: {
28+
'@typescript-eslint': typescriptEslint,
29+
},
30+
31+
languageOptions: {
32+
globals: {
33+
...globals.browser,
34+
},
35+
36+
parser: tsParser,
37+
ecmaVersion: 12,
38+
sourceType: 'module',
39+
},
40+
41+
rules: {
42+
'@typescript-eslint/no-non-null-assertion': 'off',
43+
'@typescript-eslint/no-explicit-any': 'off',
44+
'@typescript-eslint/no-inferrable-types': 'off',
45+
'@typescript-eslint/ban-ts-comment': 'off',
46+
'@typescript-eslint/no-empty-function': 'off',
47+
'@typescript-eslint/no-unused-vars': 'off',
48+
'@typescript-eslint/no-empty-object-type': 'off',
49+
},
50+
},
51+
]);

0 commit comments

Comments
 (0)