Skip to content

Commit 35c5745

Browse files
authored
Merge pull request #1659 from brettz9/eslint10
feat: support ESLint 10
2 parents 951d354 + d8599fb commit 35c5745

File tree

14 files changed

+1608
-1045
lines changed

14 files changed

+1608
-1045
lines changed

.github/workflows/feature.yaml

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,14 @@ jobs:
1313
- name: setup node.js
1414
uses: actions/setup-node@v6
1515
with:
16-
node-version: '20.11.0'
16+
node-version: '20.19.0'
1717
- run: pnpm install
1818
- run: pnpm build
1919
- run: pnpm lint
2020
timeout-minutes: 10
2121
test:
2222
runs-on: ubuntu-latest
23-
name: Test (Node.js ${{ matrix.node_js_version }})
23+
name: Test (Node.js ${{ matrix.node_js_version }}, ESLint ${{ matrix.eslint_version }})
2424
steps:
2525
- uses: pnpm/action-setup@v4
2626
with:
@@ -34,6 +34,8 @@ jobs:
3434
with:
3535
node-version: '${{ matrix.node_js_version }}'
3636
- run: pnpm install
37+
- name: Install ESLint ${{ matrix.eslint_version }}
38+
run: pnpm add -D eslint@${{ matrix.eslint_version }}
3739
- run: pnpm test
3840
timeout-minutes: 10
3941
strategy:
@@ -43,6 +45,11 @@ jobs:
4345
- '20.19.0'
4446
- '22.14.0'
4547
- '24'
48+
eslint_version:
49+
- '10'
50+
include:
51+
- node_js_version: '22.14.0'
52+
eslint_version: '9'
4653
build:
4754
runs-on: ubuntu-latest
4855
name: Build
@@ -57,7 +64,7 @@ jobs:
5764
- name: setup node.js
5865
uses: actions/setup-node@v6
5966
with:
60-
node-version: '20.11.0'
67+
node-version: '20.19.0'
6168
- run: pnpm install
6269
- run: pnpm build
6370
timeout-minutes: 10

docs/rules/prefer-import-tag.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,13 @@ The following patterns are considered problems:
7676
// "jsdoc/prefer-import-tag": ["error"|"warn", {"outputType":"named-import"}]
7777
// Message: Inline `import()` found; prefer `@import`
7878

79+
// Copyright 2026
80+
/**
81+
* @type {import('foo')}
82+
*/
83+
let x;
84+
// Message: Inline `import()` found; prefer `@import`
85+
7986
/**
8087
* @type {import('eslint').Rule.Node}
8188
*/

eslint.config.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,13 @@ export default [
4949
'@stylistic/no-extra-parens': 0,
5050
'canonical/filename-match-exported': 0,
5151
'canonical/filename-match-regex': 0,
52+
53+
// Temporarily disable until supports ESLint 10
54+
'eslint-comments/disable-enable-pair': 0,
55+
'eslint-comments/no-aggregating-enable': 0,
56+
'eslint-comments/no-duplicate-disable': 0,
57+
'eslint-comments/no-unlimited-disable': 0,
58+
5259
'filenames/match-regex': 0,
5360
'import/extensions': 0,
5461
'import/no-useless-path-segments': 0,

package.json

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -16,49 +16,48 @@
1616
"html-entities": "^2.6.0",
1717
"object-deep-merge": "^2.0.0",
1818
"parse-imports-exports": "^0.2.4",
19-
"semver": "^7.7.3",
19+
"semver": "^7.7.4",
2020
"spdx-expression-parse": "^4.0.0",
2121
"to-valid-identifier": "^1.0.0"
2222
},
2323
"description": "JSDoc linting rules for ESLint.",
2424
"devDependencies": {
2525
"@arethetypeswrong/cli": "^0.18.2",
2626
"@babel/cli": "^7.28.6",
27-
"@babel/core": "^7.29.0",
28-
"@babel/eslint-parser": "^7.28.6",
29-
"@babel/plugin-syntax-class-properties": "^7.12.13",
30-
"@babel/plugin-transform-flow-strip-types": "^7.27.1",
31-
"@babel/preset-env": "^7.29.0",
27+
"@babel/core": "8.0.0-rc.1",
28+
"@babel/eslint-parser": "8.0.0-rc.1",
29+
"@babel/plugin-transform-flow-strip-types": "8.0.0-rc.1",
30+
"@babel/preset-env": "8.0.0-rc.1",
3231
"@es-joy/escodegen": "^4.2.0",
3332
"@es-joy/jsdoc-eslint-parser": "^0.27.0",
3433
"@eslint/core": "^1.1.0",
3534
"@hkdobrev/run-if-changed": "^0.6.3",
3635
"@rollup/plugin-node-resolve": "^16.0.3",
3736
"@semantic-release/commit-analyzer": "^13.0.1",
38-
"@semantic-release/github": "^12.0.3",
39-
"@semantic-release/npm": "^13.1.3",
37+
"@semantic-release/github": "^12.0.6",
38+
"@semantic-release/npm": "^13.1.4",
4039
"@types/chai": "^5.2.3",
4140
"@types/debug": "^4.1.12",
4241
"@types/espree": "^10.1.0",
4342
"@types/esquery": "^1.5.4",
4443
"@types/estree": "^1.0.8",
4544
"@types/json-schema": "^7.0.15",
4645
"@types/mocha": "^10.0.10",
47-
"@types/node": "^25.2.0",
46+
"@types/node": "^25.3.0",
4847
"@types/semver": "^7.7.1",
4948
"@types/spdx-expression-parse": "^3.0.5",
50-
"@typescript-eslint/types": "^8.54.0",
49+
"@typescript-eslint/types": "8.56.0",
5150
"babel-plugin-add-module-exports": "^1.0.4",
5251
"babel-plugin-istanbul": "^7.0.1",
5352
"babel-plugin-transform-import-meta": "^2.3.3",
5453
"c8": "^10.1.3",
5554
"camelcase": "^9.0.0",
5655
"chai": "^6.2.2",
5756
"decamelize": "^6.0.1",
58-
"eslint": "9.39.2",
57+
"eslint": "10.0.0",
5958
"eslint-config-canonical": "^47.4.2",
6059
"gitdown": "^4.1.1",
61-
"glob": "^13.0.1",
60+
"glob": "^13.0.5",
6261
"globals": "^17.3.0",
6362
"husky": "^9.1.7",
6463
"jsdoc-type-pratt-parser": "^7.1.1",
@@ -67,15 +66,15 @@
6766
"lint-staged": "^16.2.7",
6867
"mocha": "^11.7.5",
6968
"open-editor": "^6.0.0",
70-
"playwright": "^1.58.1",
69+
"playwright": "^1.58.2",
7170
"replace": "^1.2.2",
72-
"rimraf": "^6.1.2",
71+
"rimraf": "^6.1.3",
7372
"rollup": "^4.57.1",
7473
"semantic-release": "^25.0.3",
7574
"sinon": "^21.0.1",
7675
"ts-api-utils": "^2.4.0",
7776
"typescript": "5.9.3",
78-
"typescript-eslint": "^8.54.0"
77+
"typescript-eslint": "8.56.0"
7978
},
8079
"engines": {
8180
"node": "^20.19.0 || ^22.13.0 || >=24"
@@ -147,7 +146,7 @@
147146
"statements": 100
148147
},
149148
"peerDependencies": {
150-
"eslint": "^7.0.0 || ^8.0.0 || ^9.0.0"
149+
"eslint": "^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0"
151150
},
152151
"repository": {
153152
"type": "git",
@@ -162,7 +161,8 @@
162161
},
163162
"pnpm": {
164163
"overrides": {
165-
"@types/eslint": "0.0.0-interferes-with-eslint-now"
164+
"@types/eslint": "0.0.0-interferes-with-eslint-now",
165+
"eslint-scope": "9.1.0"
166166
},
167167
"ignoredBuiltDependencies": [
168168
"core-js",
@@ -177,7 +177,7 @@
177177
"tsc-build": "tsc -p tsconfig-prod.json",
178178
"tsc-cjs": "tsc -p tsconfig-cjs.json",
179179
"rollup": "rollup -c",
180-
"build": "node ./src/bin/buildEntryFileForTS.js && rimraf ./dist && pnpm rollup && NODE_ENV=production babel ./src --out-file-extension .cjs --out-dir ./dist --copy-files --source-maps --ignore ./src/bin/*.js --no-copy-ignored && replace 'to-valid-identifier' '../to-valid-identifier.cjs' 'dist' -r --include=\"*.cjs\" && replace 'require\\(\"\\.(.*?)\\.[^.]*?\"\\)' 'require(\".$1.cjs\")' 'dist' -r --include=\"*.cjs\" && pnpm tsc-build && pnpm tsc-cjs",
180+
"build": "node ./src/bin/buildEntryFileForTS.js && rimraf ./dist && mkdir dist && pnpm rollup && NODE_ENV=production babel ./src --out-file-extension .cjs --out-dir ./dist --copy-files --source-maps --ignore ./src/bin/*.js --no-copy-ignored && replace 'to-valid-identifier' '../to-valid-identifier.cjs' 'dist' -r --include=\"*.cjs\" && replace 'require\\(\"\\.(.*?)\\.[^.]*?\"\\)' 'require(\".$1.cjs\")' 'dist' -r --include=\"*.cjs\" && pnpm tsc-build && pnpm tsc-cjs",
181181
"attw": "attw --pack .",
182182
"check-docs": "node ./src/bin/generateDocs.js --check",
183183
"create-docs": "pnpm run create-options && node ./src/bin/generateDocs.js && pnpm ruleTypes",

0 commit comments

Comments
 (0)