diff --git a/eslint.config.js b/eslint.config.js index b8277a38..198828e1 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -16,6 +16,19 @@ export default [ // Disabled because off node do not resolve 'import/extensions': 'off', }, + + settings: { + // The `node` resolver (via the `resolve` package) doesn't understand the + // package.json `exports` field, so exports-only ESM packages fail + // `import/no-unresolved`. Fall back to the typescript resolver + // (enhanced-resolve), which does support `exports`, for plain JS too. + 'import/resolver': { + node: { + extensions: ['.mjs', '.cjs', '.js', '.json', '.node'], + }, + typescript: {}, + }, + }, }, prettierConfig, ]; diff --git a/package.json b/package.json index 8b622897..8ec5f3f2 100644 --- a/package.json +++ b/package.json @@ -45,6 +45,7 @@ "eslint": "9.39.4", "eslint-config-prettier": "9.1.2", "eslint-import-resolver-node": "0.3.9", + "eslint-import-resolver-typescript": "3.10.1", "eslint-plugin-jest-formatting": "3.1.0", "eslint-plugin-prettier": "5.5.5", "husky": "9.1.7", diff --git a/packages/eslint-config-typescript/index.js b/packages/eslint-config-typescript/index.js index 0c5ecb8e..8609cbd6 100644 --- a/packages/eslint-config-typescript/index.js +++ b/packages/eslint-config-typescript/index.js @@ -1,8 +1,6 @@ import base from '@alma-oss/eslint-config-base'; import settings from '@alma-oss/eslint-config-base/settings'; -// eslint-disable-next-line import/no-unresolved import tsEslint from 'typescript-eslint'; -// eslint-disable-next-line import/no-unresolved import tsParser from '@typescript-eslint/parser'; import globs from '@alma-oss/eslint-config-base/globs'; diff --git a/packages/eslint-config-typescript/react.js b/packages/eslint-config-typescript/react.js index 82449d96..25c2038d 100644 --- a/packages/eslint-config-typescript/react.js +++ b/packages/eslint-config-typescript/react.js @@ -1,6 +1,5 @@ import reactConfig from '@alma-oss/eslint-config-react'; import globs from '@alma-oss/eslint-config-base/globs'; -// eslint-disable-next-line import/no-unresolved import parser from '@typescript-eslint/parser'; export default [ diff --git a/packages/textlint-rule-preset-alma/package.json b/packages/textlint-rule-preset-alma/package.json index ccd60973..fde035f4 100644 --- a/packages/textlint-rule-preset-alma/package.json +++ b/packages/textlint-rule-preset-alma/package.json @@ -33,7 +33,7 @@ "dependencies": { "textlint": "^15.0.0", "textlint-filter-rule-comments": "^1.2.2", - "textlint-rule-apostrophe": "^2.0.0", + "textlint-rule-apostrophe": "^3.0.0", "textlint-rule-common-misspellings": "^1.0.1", "textlint-rule-stop-words": "^3.0.0", "textlint-rule-terminology": "^5.0.0", diff --git a/packages/textlint-rule-preset-alma/rules/terminology.js b/packages/textlint-rule-preset-alma/rules/terminology.js index add22dba..5bde814f 100644 --- a/packages/textlint-rule-preset-alma/rules/terminology.js +++ b/packages/textlint-rule-preset-alma/rules/terminology.js @@ -1,4 +1,3 @@ -// eslint-disable-next-line import/no-unresolved -- v5 only declares `exports`, which eslint-import-resolver-node@0.3.x can't read; Node resolves it fine at runtime. import textlintRuleTerminology from 'textlint-rule-terminology'; const defaultOptions = { diff --git a/yarn.lock b/yarn.lock index 8870b41d..50b2af25 100644 --- a/yarn.lock +++ b/yarn.lock @@ -143,7 +143,7 @@ __metadata: "@textlint/textlint-plugin-text": "npm:^15.0.0" textlint: "npm:^15.0.0" textlint-filter-rule-comments: "npm:^1.2.2" - textlint-rule-apostrophe: "npm:^2.0.0" + textlint-rule-apostrophe: "npm:^3.0.0" textlint-rule-common-misspellings: "npm:^1.0.1" textlint-rule-stop-words: "npm:^3.0.0" textlint-rule-terminology: "npm:^5.0.0" @@ -5369,6 +5369,7 @@ __metadata: eslint: "npm:9.39.4" eslint-config-prettier: "npm:9.1.2" eslint-import-resolver-node: "npm:0.3.9" + eslint-import-resolver-typescript: "npm:3.10.1" eslint-plugin-jest-formatting: "npm:3.1.0" eslint-plugin-prettier: "npm:5.5.5" husky: "npm:9.1.7" @@ -6478,7 +6479,7 @@ __metadata: languageName: node linkType: hard -"eslint-import-resolver-typescript@npm:^3.2.7": +"eslint-import-resolver-typescript@npm:3.10.1, eslint-import-resolver-typescript@npm:^3.2.7": version: 3.10.1 resolution: "eslint-import-resolver-typescript@npm:3.10.1" dependencies: @@ -14766,10 +14767,10 @@ __metadata: languageName: node linkType: hard -"textlint-rule-apostrophe@npm:^2.0.0": - version: 2.0.0 - resolution: "textlint-rule-apostrophe@npm:2.0.0" - checksum: 10/e975b163bafdf35ed6f72e91ad3e05b6952ca5f7db618c0a6165769b6ee694f6631b6cdb4ea882ddb62a35b4fa56b525f281edd68753f741a7ab1b3196c82322 +"textlint-rule-apostrophe@npm:^3.0.0": + version: 3.0.0 + resolution: "textlint-rule-apostrophe@npm:3.0.0" + checksum: 10/75780336942a0a6397bdfd0bfc04b0796560d8478e9f9219d91d3b2ce517246bd6bc18c1d157af2b674586007d389825c4b2590a415c656476f963af3f2d1284 languageName: node linkType: hard