Skip to content

Commit 56cdd74

Browse files
authored
Migrate ESLint to work with 9.x.x, fix code (#76)
1 parent 6616919 commit 56cdd74

File tree

7 files changed

+122
-147
lines changed

7 files changed

+122
-147
lines changed

.github/workflows/test-javascript.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,4 +39,7 @@ jobs:
3939
working-directory: javascript
4040

4141
- run: npm run build
42+
working-directory: javascript
43+
44+
- run: npm run lint
4245
working-directory: javascript

javascript/.eslintrc.json

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

javascript/eslint.config.mjs

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
import path from 'node:path'
2+
import { fileURLToPath } from 'node:url'
3+
4+
import { fixupConfigRules, fixupPluginRules } from '@eslint/compat'
5+
import { FlatCompat } from '@eslint/eslintrc'
6+
import js from '@eslint/js'
7+
import typescriptEslint from '@typescript-eslint/eslint-plugin'
8+
import tsParser from '@typescript-eslint/parser'
9+
import { defineConfig } from 'eslint/config'
10+
import _import from 'eslint-plugin-import'
11+
import n from 'eslint-plugin-n'
12+
import simpleImportSort from 'eslint-plugin-simple-import-sort'
13+
import globals from 'globals'
14+
15+
const __filename = fileURLToPath(import.meta.url)
16+
const __dirname = path.dirname(__filename)
17+
const compat = new FlatCompat({
18+
baseDirectory: __dirname,
19+
recommendedConfig: js.configs.recommended,
20+
allConfig: js.configs.all,
21+
})
22+
23+
export default defineConfig([
24+
{
25+
extends: fixupConfigRules(
26+
compat.extends(
27+
'eslint:recommended',
28+
'plugin:import/typescript',
29+
'plugin:@typescript-eslint/eslint-recommended',
30+
'plugin:@typescript-eslint/recommended',
31+
)
32+
),
33+
34+
plugins: {
35+
import: fixupPluginRules(_import),
36+
'simple-import-sort': simpleImportSort,
37+
n,
38+
'@typescript-eslint': fixupPluginRules(typescriptEslint),
39+
},
40+
41+
languageOptions: {
42+
globals: {
43+
...globals.browser,
44+
...globals.node,
45+
},
46+
47+
parser: tsParser,
48+
ecmaVersion: 5,
49+
sourceType: 'module',
50+
51+
parserOptions: {
52+
project: 'tsconfig.json',
53+
},
54+
},
55+
56+
rules: {
57+
'import/no-cycle': 'error',
58+
'n/no-extraneous-import': 'error',
59+
'@typescript-eslint/ban-ts-ignore': 'off',
60+
'@typescript-eslint/ban-ts-comment': 'off',
61+
'@typescript-eslint/explicit-module-boundary-types': 'off',
62+
'@typescript-eslint/explicit-function-return-type': 'off',
63+
'@typescript-eslint/no-use-before-define': 'off',
64+
'@typescript-eslint/interface-name-prefix': 'off',
65+
'@typescript-eslint/member-delimiter-style': 'off',
66+
'@typescript-eslint/no-explicit-any': 'error',
67+
'@typescript-eslint/no-non-null-assertion': 'error',
68+
'simple-import-sort/imports': 'error',
69+
'simple-import-sort/exports': 'error',
70+
},
71+
},
72+
])

javascript/package-lock.json

Lines changed: 38 additions & 101 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

javascript/package.json

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@
1616
"scripts": {
1717
"build": "tsc --build tsconfig.build.json",
1818
"clean": "rm -rf dist",
19-
"lint-fix": "eslint --ext ts --max-warnings 0 --fix src && prettier --write src",
20-
"lint": "eslint --ext ts --max-warnings 0 && prettier --check src",
19+
"fix": "eslint --ext ts --max-warnings 0 src --fix src && prettier --write src",
20+
"lint": "eslint --ext ts --max-warnings 0 src && prettier --check src",
2121
"test": "mocha 'src/**/*.spec.*'",
2222
"prepublishOnly": "tsc --build tsconfig.build.json"
2323
},
@@ -33,6 +33,9 @@
3333
"devDependencies": {
3434
"@cucumber/message-streams": "^4.0.1",
3535
"@cucumber/messages": "28.0.0",
36+
"@eslint/compat": "^1.3.1",
37+
"@eslint/eslintrc": "^3.3.1",
38+
"@eslint/js": "^9.31.0",
3639
"@types/chai": "^5.0.0",
3740
"@types/chai-almost": "^1.0.3",
3841
"@types/chai-xml": "^0.3.6",
@@ -45,11 +48,10 @@
4548
"chai-almost": "^1.0.1",
4649
"chai-xml": "^0.4.1",
4750
"eslint": "9.31.0",
48-
"eslint-config-prettier": "10.1.5",
4951
"eslint-plugin-import": "2.32.0",
5052
"eslint-plugin-n": "17.21.0",
51-
"eslint-plugin-prettier": "5.5.1",
5253
"eslint-plugin-simple-import-sort": "12.1.1",
54+
"globals": "^16.3.0",
5355
"globby": "^14.0.2",
5456
"mocha": "^11.0.0",
5557
"prettier": "3.6.2",

javascript/src/index.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import formatter from './index.js'
1414
const asyncPipeline = util.promisify(pipeline)
1515
use(chaiXml)
1616

17-
describe('Acceptance Tests', async function() {
17+
describe('Acceptance Tests', async function () {
1818
this.timeout(10_000)
1919

2020
const ndjsonFiles = globbySync(`*.ndjson`, {
@@ -46,7 +46,7 @@ describe('Acceptance Tests', async function() {
4646
emit(envelope)
4747
callback()
4848
},
49-
}),
49+
})
5050
)
5151

5252
const expectedXml = fs.readFileSync(ndjsonFile.replace('.ndjson', '.xml'), {

0 commit comments

Comments
 (0)