From 78028fb87017c6539205d529209aff10ecb7741a Mon Sep 17 00:00:00 2001 From: Renegade334 Date: Thu, 3 Sep 2026 19:52:49 +0200 Subject: [PATCH] chore(lint): override eslint-import-resolver-node for "exports" support --- eslint.config.js | 20 +----- lib/cli.js | 1 - package-lock.json | 114 ++++++++++++++++++++++++++++++---- package.json | 1 + test/unit/wpt_updater.test.js | 1 - 5 files changed, 104 insertions(+), 33 deletions(-) diff --git a/eslint.config.js b/eslint.config.js index 172348ff..6da0b6f9 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -45,25 +45,7 @@ export default [ 'n/no-unsupported-features/node-builtins': 'off', }, settings: { - 'import/resolver': { - node: { - pathFilter(pkg, path, relativePath) { - let pkgExport; - if (relativePath) { - pkgExport = pkg.exports?.[`./${relativePath}`]; - } - if (!relativePath || (!pkgExport && relativePath === 'index')) { - pkgExport = pkg.exports?.['.'] ?? pkg.exports; - } - return pkgExport?.import?.default ?? - pkgExport?.import ?? - pkgExport?.[0]?.import ?? - pkgExport?.default ?? - pkgExport ?? - (relativePath || pkg.main); - }, - }, - }, + 'import/resolver': 'node', }, }, ]; diff --git a/lib/cli.js b/lib/cli.js index bfb10474..abd2b204 100644 --- a/lib/cli.js +++ b/lib/cli.js @@ -81,7 +81,6 @@ export default class CLI { return defaultAnswer; } - // eslint-disable-next-line import/namespace -- Plugin can't validate computed reference here const answer = await inquirer[questionType]({ message: question, default: defaultAnswer diff --git a/package-lock.json b/package-lock.json index b885eb2f..c997fe60 100644 --- a/package-lock.json +++ b/package-lock.json @@ -59,6 +59,7 @@ "@reporters/github": "^1.12.0", "c8": "^12.0.0", "eslint": "^9.39.4", + "eslint-import-resolver-node": "^0.4.0", "eslint-plugin-import": "^2.32.0", "neostandard": "^0.13.0", "sinon": "^22.0.0" @@ -3253,15 +3254,15 @@ } }, "node_modules/eslint-import-resolver-node": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", - "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.4.0.tgz", + "integrity": "sha512-wV22NewD4lwrMp94THds3/MjW7qPYupLj3wxLZCYkKrSLfVslRS/7lcbogiEwn9oT4cunDDCsTiBo/V16WlEUQ==", "dev": true, "license": "MIT", "dependencies": { "debug": "^3.2.7", - "is-core-module": "^2.13.0", - "resolve": "^1.22.4" + "is-core-module": "^2.16.2", + "resolve": "^2.0.0-next.7" } }, "node_modules/eslint-import-resolver-node/node_modules/debug": { @@ -3274,6 +3275,30 @@ "ms": "^2.1.1" } }, + "node_modules/eslint-import-resolver-node/node_modules/resolve": { + "version": "2.0.0-next.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.7.tgz", + "integrity": "sha512-tqt+NBWwyaMgw3zDsnygx4CByWjQEJHOPMdslYhppaQSJUtL/D4JO9CcBBlhPoI8lz9oJIDXkwXfhF4aWqP8xQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "is-core-module": "^2.16.2", + "node-exports-info": "^1.6.0", + "object-keys": "^1.1.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/eslint-module-utils": { "version": "2.12.1", "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.1.tgz", @@ -3368,6 +3393,42 @@ "ms": "^2.1.1" } }, + "node_modules/eslint-plugin-import/node_modules/eslint-import-resolver-node": { + "version": "0.3.10", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.10.tgz", + "integrity": "sha512-tRrKqFyCaKict5hOd244sL6EQFNycnMQnBe+j8uqGNXYzsImGbGUU4ibtoaBmv5FLwJwcFJNeg1GeVjQfbMrDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.16.1", + "resolve": "^2.0.0-next.6" + } + }, + "node_modules/eslint-plugin-import/node_modules/resolve": { + "version": "2.0.0-next.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.7.tgz", + "integrity": "sha512-tqt+NBWwyaMgw3zDsnygx4CByWjQEJHOPMdslYhppaQSJUtL/D4JO9CcBBlhPoI8lz9oJIDXkwXfhF4aWqP8xQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "is-core-module": "^2.16.2", + "node-exports-info": "^1.6.0", + "object-keys": "^1.1.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/eslint-plugin-import/node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -4412,9 +4473,9 @@ } }, "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz", + "integrity": "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==", "inBundle": true, "license": "MIT", "dependencies": { @@ -4737,13 +4798,13 @@ } }, "node_modules/is-core-module": { - "version": "2.16.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", - "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "version": "2.16.2", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.2.tgz", + "integrity": "sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==", "inBundle": true, "license": "MIT", "dependencies": { - "hasown": "^2.0.2" + "hasown": "^2.0.3" }, "engines": { "node": ">= 0.4" @@ -6682,6 +6743,35 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/node-exports-info": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/node-exports-info/-/node-exports-info-1.6.2.tgz", + "integrity": "sha512-kXs9Go0cah0qHVV2v389IXQLdLCeE1xfFtjOAF+iobu0OIoG1pje8At2vMHyaPMiPMnG/LWP50twML21eMcAag==", + "dev": true, + "license": "MIT", + "dependencies": { + "array.prototype.flatmap": "^1.3.3", + "es-errors": "^1.3.0", + "object.entries": "^1.1.9", + "semver": "^6.3.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/node-exports-info/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/normalize-package-data": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", diff --git a/package.json b/package.json index 10657015..90bfaa2e 100644 --- a/package.json +++ b/package.json @@ -58,6 +58,7 @@ "@reporters/github": "^1.12.0", "c8": "^12.0.0", "eslint": "^9.39.4", + "eslint-import-resolver-node": "^0.4.0", "eslint-plugin-import": "^2.32.0", "neostandard": "^0.13.0", "sinon": "^22.0.0" diff --git a/test/unit/wpt_updater.test.js b/test/unit/wpt_updater.test.js index 92065d55..1bae563f 100644 --- a/test/unit/wpt_updater.test.js +++ b/test/unit/wpt_updater.test.js @@ -1,4 +1,3 @@ -/* eslint-disable import/no-named-as-default-member */ import { describe, it, before, after } from 'node:test'; import assert from 'node:assert'; import fs from 'node:fs';