From d1807bd97b41bf17d9254a768baa8a1e51b2962a Mon Sep 17 00:00:00 2001 From: ueda-soma Date: Thu, 5 Dec 2024 17:55:16 +0900 Subject: [PATCH 01/20] import/resolvers -> import/resolver (#328) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index de3808f8..079b39d9 100644 --- a/README.md +++ b/README.md @@ -112,7 +112,7 @@ But if you are using `eslint-plugin-import` or the older version of `eslint-plug module.exports = [ { settings: { - 'import/resolvers': { + 'import/resolver': { typescript: { alwaysTryTypes: true, // always try to resolve types under `@types` directory even it doesn't contain any source code, like `@types/unist` From 0fd4eea49347362a29fe7b770f65260539039d71 Mon Sep 17 00:00:00 2001 From: Ben McCann <322311+benmccann@users.noreply.github.com> Date: Sun, 15 Dec 2024 07:30:46 -0800 Subject: [PATCH 02/20] chore: switch to tinyglobby (#330) * chore: switch to tinyglobby * chore: update lockfile * chore: make eslint happy * chore: yarn dedupe --------- Co-authored-by: SukkaW --- package.json | 4 +- src/index.ts | 8 +- yarn.lock | 256 +++++++++++---------------------------------------- 3 files changed, 62 insertions(+), 206 deletions(-) diff --git a/package.json b/package.json index 2bc41b78..3446a453 100644 --- a/package.json +++ b/package.json @@ -79,11 +79,11 @@ "@nolyfill/is-core-module": "1.0.39", "debug": "^4.3.7", "enhanced-resolve": "^5.15.0", - "fast-glob": "^3.3.2", "get-tsconfig": "^4.7.5", "is-bun-module": "^1.0.2", "is-glob": "^4.0.3", - "stable-hash": "^0.0.4" + "stable-hash": "^0.0.4", + "tinyglobby": "^0.2.10" }, "devDependencies": { "@1stg/eslint-config": "7", diff --git a/src/index.ts b/src/index.ts index 53e9b8ec..85b3941a 100644 --- a/src/index.ts +++ b/src/index.ts @@ -5,15 +5,13 @@ import isNodeCoreModule from '@nolyfill/is-core-module' import debug from 'debug' import type { FileSystem, ResolveOptions, Resolver } from 'enhanced-resolve' import enhancedResolve from 'enhanced-resolve' -import fg from 'fast-glob' import { createPathsMatcher, getTsconfig } from 'get-tsconfig' import type { TsConfigResult } from 'get-tsconfig' import type { Version } from 'is-bun-module' import { isBunModule } from 'is-bun-module' import isGlob from 'is-glob' import stableHashExports from 'stable-hash' - -const { globSync } = fg +import { globSync } from 'tinyglobby' // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- esmodule interop const stableHash = stableHashExports.default || stableHashExports @@ -393,7 +391,9 @@ function initMappers(options: InternalResolverOptions) { const projectPaths = [ ...new Set([ ...configPaths.filter(path => !isGlob(path)), - ...globSync([...configPaths.filter(path => isGlob(path)), ...ignore]), + ...globSync([...configPaths.filter(path => isGlob(path)), ...ignore], { + expandDirectories: false, + }), ]), ] diff --git a/yarn.lock b/yarn.lock index 89bd5191..1b7d6444 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2722,13 +2722,6 @@ __metadata: languageName: node linkType: hard -"@eslint/js@npm:8.57.0": - version: 8.57.0 - resolution: "@eslint/js@npm:8.57.0" - checksum: 3c501ce8a997cf6cbbaf4ed358af5492875e3550c19b9621413b82caa9ae5382c584b0efa79835639e6e0ddaa568caf3499318e5bdab68643ef4199dce5eb0a0 - languageName: node - linkType: hard - "@eslint/js@npm:8.57.1": version: 8.57.1 resolution: "@eslint/js@npm:8.57.1" @@ -2736,17 +2729,6 @@ __metadata: languageName: node linkType: hard -"@humanwhocodes/config-array@npm:^0.11.14": - version: 0.11.14 - resolution: "@humanwhocodes/config-array@npm:0.11.14" - dependencies: - "@humanwhocodes/object-schema": "npm:^2.0.2" - debug: "npm:^4.3.1" - minimatch: "npm:^3.0.5" - checksum: 3ffb24ecdfab64014a230e127118d50a1a04d11080cbb748bc21629393d100850496456bbcb4e8c438957fe0934430d731042f1264d6a167b62d32fc2863580a - languageName: node - linkType: hard - "@humanwhocodes/config-array@npm:^0.13.0": version: 0.13.0 resolution: "@humanwhocodes/config-array@npm:0.13.0" @@ -2765,7 +2747,7 @@ __metadata: languageName: node linkType: hard -"@humanwhocodes/object-schema@npm:^2.0.2, @humanwhocodes/object-schema@npm:^2.0.3": +"@humanwhocodes/object-schema@npm:^2.0.3": version: 2.0.3 resolution: "@humanwhocodes/object-schema@npm:2.0.3" checksum: 05bb99ed06c16408a45a833f03a732f59bf6184795d4efadd33238ff8699190a8c871ad1121241bb6501589a9598dc83bf25b99dcbcf41e155cdf36e35e937a3 @@ -3749,16 +3731,7 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:^18.0.0": - version: 18.19.39 - resolution: "@types/node@npm:18.19.39" - dependencies: - undici-types: "npm:~5.26.4" - checksum: d2fe84adf087a4184217b666f675e99678060d15f84882a4a1c3e49c3dca521a7e99a201a3c073c2b60b00419f1f4c3b357d8f7397f65e400dc3b77b0145a1da - languageName: node - linkType: hard - -"@types/node@npm:^18.19.67": +"@types/node@npm:^18.0.0, @types/node@npm:^18.19.67": version: 18.19.67 resolution: "@types/node@npm:18.19.67" dependencies: @@ -3802,14 +3775,7 @@ __metadata: languageName: node linkType: hard -"@types/unist@npm:^2, @types/unist@npm:^2.0.0, @types/unist@npm:^2.0.2": - version: 2.0.10 - resolution: "@types/unist@npm:2.0.10" - checksum: e2924e18dedf45f68a5c6ccd6015cd62f1643b1b43baac1854efa21ae9e70505db94290434a23da1137d9e31eb58e54ca175982005698ac37300a1c889f6c4aa - languageName: node - linkType: hard - -"@types/unist@npm:^2.0.11": +"@types/unist@npm:^2, @types/unist@npm:^2.0.0, @types/unist@npm:^2.0.11, @types/unist@npm:^2.0.2": version: 2.0.11 resolution: "@types/unist@npm:2.0.11" checksum: 6d436e832bc35c6dde9f056ac515ebf2b3384a1d7f63679d12358766f9b313368077402e9c1126a14d827f10370a5485e628bf61aa91117cf4fc882423191a4e @@ -4763,16 +4729,7 @@ __metadata: languageName: node linkType: hard -"braces@npm:^3.0.2, braces@npm:~3.0.2": - version: 3.0.2 - resolution: "braces@npm:3.0.2" - dependencies: - fill-range: "npm:^7.0.1" - checksum: 966b1fb48d193b9d155f810e5efd1790962f2c4e0829f8440b8ad236ba009222c501f70185ef732fef17a4c490bb33a03b90dab0631feafbdf447da91e8165b1 - languageName: node - linkType: hard - -"braces@npm:^3.0.3": +"braces@npm:^3.0.2, braces@npm:^3.0.3, braces@npm:~3.0.2": version: 3.0.3 resolution: "braces@npm:3.0.3" dependencies: @@ -5420,18 +5377,7 @@ __metadata: languageName: node linkType: hard -"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3": - version: 7.0.3 - resolution: "cross-spawn@npm:7.0.3" - dependencies: - path-key: "npm:^3.1.0" - shebang-command: "npm:^2.0.0" - which: "npm:^2.0.1" - checksum: e1a13869d2f57d974de0d9ef7acbf69dc6937db20b918525a01dacb5032129bd552d290d886d981e99f1b624cb03657084cc87bd40f115c07ecf376821c729ce - languageName: node - linkType: hard - -"cross-spawn@npm:^7.0.5": +"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3, cross-spawn@npm:^7.0.5": version: 7.0.6 resolution: "cross-spawn@npm:7.0.6" dependencies: @@ -5503,15 +5449,15 @@ __metadata: languageName: node linkType: hard -"debug@npm:4, debug@npm:^4.0.0, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4": - version: 4.3.5 - resolution: "debug@npm:4.3.5" +"debug@npm:4, debug@npm:^4.0.0, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4, debug@npm:^4.3.7": + version: 4.3.7 + resolution: "debug@npm:4.3.7" dependencies: - ms: "npm:2.1.2" + ms: "npm:^2.1.3" peerDependenciesMeta: supports-color: optional: true - checksum: cb6eab424c410e07813ca1392888589972ce9a32b8829c6508f5e1f25f3c3e70a76731610ae55b4bbe58d1a2fffa1424b30e97fa8d394e49cd2656a9643aedd2 + checksum: 71168908b9a78227ab29d5d25fe03c5867750e31ce24bf2c44a86efc5af041758bb56569b0a3d48a9b5344c00a24a777e6f4100ed6dfd9534a42c1dde285125a languageName: node linkType: hard @@ -5536,18 +5482,6 @@ __metadata: languageName: node linkType: hard -"debug@npm:^4.3.7": - version: 4.3.7 - resolution: "debug@npm:4.3.7" - dependencies: - ms: "npm:^2.1.3" - peerDependenciesMeta: - supports-color: - optional: true - checksum: 71168908b9a78227ab29d5d25fe03c5867750e31ce24bf2c44a86efc5af041758bb56569b0a3d48a9b5344c00a24a777e6f4100ed6dfd9534a42c1dde285125a - languageName: node - linkType: hard - "decamelize-keys@npm:^1.1.0": version: 1.1.1 resolution: "decamelize-keys@npm:1.1.1" @@ -6234,7 +6168,6 @@ __metadata: eslint-import-resolver-typescript: "link:." eslint-plugin-import: "npm:eslint-plugin-i@^2.29.1" eslint-plugin-import-x: "npm:^4.5.0" - fast-glob: "npm:^3.3.2" get-tsconfig: "npm:^4.7.5" is-bun-module: "npm:^1.0.2" is-glob: "npm:^4.0.3" @@ -6246,6 +6179,7 @@ __metadata: size-limit: "npm:^11.0.0" size-limit-preset-node-lib: "npm:^0.3.0" stable-hash: "npm:^0.0.4" + tinyglobby: "npm:^0.2.10" type-coverage: "npm:^2.27.0" typescript: "npm:^5.3.2" peerDependencies: @@ -6748,55 +6682,7 @@ __metadata: languageName: node linkType: hard -"eslint@npm:^8.43.0": - version: 8.57.0 - resolution: "eslint@npm:8.57.0" - dependencies: - "@eslint-community/eslint-utils": "npm:^4.2.0" - "@eslint-community/regexpp": "npm:^4.6.1" - "@eslint/eslintrc": "npm:^2.1.4" - "@eslint/js": "npm:8.57.0" - "@humanwhocodes/config-array": "npm:^0.11.14" - "@humanwhocodes/module-importer": "npm:^1.0.1" - "@nodelib/fs.walk": "npm:^1.2.8" - "@ungap/structured-clone": "npm:^1.2.0" - ajv: "npm:^6.12.4" - chalk: "npm:^4.0.0" - cross-spawn: "npm:^7.0.2" - debug: "npm:^4.3.2" - doctrine: "npm:^3.0.0" - escape-string-regexp: "npm:^4.0.0" - eslint-scope: "npm:^7.2.2" - eslint-visitor-keys: "npm:^3.4.3" - espree: "npm:^9.6.1" - esquery: "npm:^1.4.2" - esutils: "npm:^2.0.2" - fast-deep-equal: "npm:^3.1.3" - file-entry-cache: "npm:^6.0.1" - find-up: "npm:^5.0.0" - glob-parent: "npm:^6.0.2" - globals: "npm:^13.19.0" - graphemer: "npm:^1.4.0" - ignore: "npm:^5.2.0" - imurmurhash: "npm:^0.1.4" - is-glob: "npm:^4.0.0" - is-path-inside: "npm:^3.0.3" - js-yaml: "npm:^4.1.0" - json-stable-stringify-without-jsonify: "npm:^1.0.1" - levn: "npm:^0.4.1" - lodash.merge: "npm:^4.6.2" - minimatch: "npm:^3.1.2" - natural-compare: "npm:^1.4.0" - optionator: "npm:^0.9.3" - strip-ansi: "npm:^6.0.1" - text-table: "npm:^0.2.0" - bin: - eslint: bin/eslint.js - checksum: 00496e218b23747a7a9817bf58b522276d0dc1f2e546dceb4eea49f9871574088f72f1f069a6b560ef537efa3a75261b8ef70e51ef19033da1cc4c86a755ef15 - languageName: node - linkType: hard - -"eslint@npm:^8.57.1": +"eslint@npm:^8.43.0, eslint@npm:^8.57.1": version: 8.57.1 resolution: "eslint@npm:8.57.1" dependencies: @@ -7150,6 +7036,18 @@ __metadata: languageName: node linkType: hard +"fdir@npm:^6.4.2": + version: 6.4.2 + resolution: "fdir@npm:6.4.2" + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + checksum: 5ff80d1d2034e75cc68be175401c9f64c4938a6b2c1e9a0c27f2d211ffbe491fd86d29e4576825d9da8aff9bd465f0283427c2dddc11653457906c46d3bbc448 + languageName: node + linkType: hard + "fflate@npm:^0.8.0": version: 0.8.1 resolution: "fflate@npm:0.8.1" @@ -7166,15 +7064,6 @@ __metadata: languageName: node linkType: hard -"fill-range@npm:^7.0.1": - version: 7.0.1 - resolution: "fill-range@npm:7.0.1" - dependencies: - to-regex-range: "npm:^5.0.1" - checksum: e260f7592fd196b4421504d3597cc76f4a1ca7a9488260d533b611fc3cefd61e9a9be1417cb82d3b01ad9f9c0ff2dbf258e1026d2445e26b0cf5148ff4250429 - languageName: node - linkType: hard - "fill-range@npm:^7.1.1": version: 7.1.1 resolution: "fill-range@npm:7.1.1" @@ -7442,16 +7331,7 @@ __metadata: languageName: node linkType: hard -"get-tsconfig@npm:^4.7.0, get-tsconfig@npm:^4.7.2, get-tsconfig@npm:^4.7.5": - version: 4.7.5 - resolution: "get-tsconfig@npm:4.7.5" - dependencies: - resolve-pkg-maps: "npm:^1.0.0" - checksum: de7de5e4978354e8e6d9985baf40ea32f908a13560f793bc989930c229cc8d5c3f7b6b2896d8e43eb1a9b4e9e30018ef4b506752fd2a4b4d0dfee4af6841b119 - languageName: node - linkType: hard - -"get-tsconfig@npm:^4.7.3": +"get-tsconfig@npm:^4.7.0, get-tsconfig@npm:^4.7.2, get-tsconfig@npm:^4.7.3, get-tsconfig@npm:^4.7.5": version: 4.8.1 resolution: "get-tsconfig@npm:4.8.1" dependencies: @@ -10139,7 +10019,7 @@ __metadata: languageName: node linkType: hard -"micromatch@npm:4.0.5, micromatch@npm:^4.0.4, micromatch@npm:^4.0.5": +"micromatch@npm:4.0.5": version: 4.0.5 resolution: "micromatch@npm:4.0.5" dependencies: @@ -10149,7 +10029,7 @@ __metadata: languageName: node linkType: hard -"micromatch@npm:^4.0.8": +"micromatch@npm:^4.0.4, micromatch@npm:^4.0.5, micromatch@npm:^4.0.8": version: 4.0.8 resolution: "micromatch@npm:4.0.8" dependencies: @@ -10189,12 +10069,12 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:6 || 7 || 8 || 9, minimatch@npm:^9.0.0, minimatch@npm:^9.0.1, minimatch@npm:^9.0.3": - version: 9.0.3 - resolution: "minimatch@npm:9.0.3" +"minimatch@npm:6 || 7 || 8 || 9, minimatch@npm:^9.0.0, minimatch@npm:^9.0.1, minimatch@npm:^9.0.3, minimatch@npm:^9.0.4": + version: 9.0.5 + resolution: "minimatch@npm:9.0.5" dependencies: brace-expansion: "npm:^2.0.1" - checksum: c81b47d28153e77521877649f4bab48348d10938df9e8147a58111fe00ef89559a2938de9f6632910c4f7bf7bb5cd81191a546167e58d357f0cfb1e18cecc1c5 + checksum: dd6a8927b063aca6d910b119e1f2df6d2ce7d36eab91de83167dd136bb85e1ebff97b0d3de1cb08bd1f7e018ca170b4962479fefab5b2a69e2ae12cb2edc8348 languageName: node linkType: hard @@ -10216,15 +10096,6 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:^9.0.4": - version: 9.0.5 - resolution: "minimatch@npm:9.0.5" - dependencies: - brace-expansion: "npm:^2.0.1" - checksum: dd6a8927b063aca6d910b119e1f2df6d2ce7d36eab91de83167dd136bb85e1ebff97b0d3de1cb08bd1f7e018ca170b4962479fefab5b2a69e2ae12cb2edc8348 - languageName: node - linkType: hard - "minimist-options@npm:4.1.0": version: 4.1.0 resolution: "minimist-options@npm:4.1.0" @@ -11081,14 +10952,7 @@ __metadata: languageName: node linkType: hard -"picocolors@npm:^1.0.0": - version: 1.0.0 - resolution: "picocolors@npm:1.0.0" - checksum: a2e8092dd86c8396bdba9f2b5481032848525b3dc295ce9b57896f931e63fc16f79805144321f72976383fc249584672a75cc18d6777c6b757603f372f745981 - languageName: node - linkType: hard - -"picocolors@npm:^1.1.0": +"picocolors@npm:^1.0.0, picocolors@npm:^1.1.0": version: 1.1.0 resolution: "picocolors@npm:1.1.0" checksum: a2ad60d94d185c30f2a140b19c512547713fb89b920d32cc6cf658fa786d63a37ba7b8451872c3d9fc34883971fb6e5878e07a20b60506e0bb2554dce9169ccb @@ -11102,6 +10966,13 @@ __metadata: languageName: node linkType: hard +"picomatch@npm:^4.0.2": + version: 4.0.2 + resolution: "picomatch@npm:4.0.2" + checksum: ce617b8da36797d09c0baacb96ca8a44460452c89362d7cb8f70ca46b4158ba8bc3606912de7c818eb4a939f7f9015cef3c766ec8a0c6bfc725fdc078e39c717 + languageName: node + linkType: hard + "pidtree@npm:0.6.0": version: 0.6.0 resolution: "pidtree@npm:0.6.0" @@ -12897,7 +12768,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:7.5.4, semver@npm:^7.0.0, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.6, semver@npm:^7.3.7, semver@npm:^7.3.8, semver@npm:^7.5.3, semver@npm:^7.5.4": +"semver@npm:7.5.4": version: 7.5.4 resolution: "semver@npm:7.5.4" dependencies: @@ -12917,7 +12788,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:^7.6.0, semver@npm:^7.6.3": +"semver@npm:^7.0.0, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.6, semver@npm:^7.3.7, semver@npm:^7.3.8, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.0, semver@npm:^7.6.2, semver@npm:^7.6.3": version: 7.6.3 resolution: "semver@npm:7.6.3" bin: @@ -12926,15 +12797,6 @@ __metadata: languageName: node linkType: hard -"semver@npm:^7.6.2": - version: 7.6.2 - resolution: "semver@npm:7.6.2" - bin: - semver: bin/semver.js - checksum: 296b17d027f57a87ef645e9c725bff4865a38dfc9caf29b26aa084b85820972fbe7372caea1ba6857162fa990702c6d9c1d82297cecb72d56c78ab29070d2ca2 - languageName: node - linkType: hard - "set-blocking@npm:^2.0.0": version: 2.0.0 resolution: "set-blocking@npm:2.0.0" @@ -13038,7 +12900,7 @@ __metadata: languageName: node linkType: hard -"simple-git-hooks@npm:^2.11.1": +"simple-git-hooks@npm:^2.11.1, simple-git-hooks@npm:^2.8.1": version: 2.11.1 resolution: "simple-git-hooks@npm:2.11.1" bin: @@ -13047,15 +12909,6 @@ __metadata: languageName: node linkType: hard -"simple-git-hooks@npm:^2.8.1": - version: 2.9.0 - resolution: "simple-git-hooks@npm:2.9.0" - bin: - simple-git-hooks: cli.js - checksum: 7fc951d077139de1cd461efebfe77b72478cb829a058645cfae560377b74199258d02adb68ea2ab1f1f7adaa4772ddd6a2a20c68afd6ec4c28dd4e7300426e11 - languageName: node - linkType: hard - "size-limit-node-esbuild@npm:^0.3.0": version: 0.3.0 resolution: "size-limit-node-esbuild@npm:0.3.0" @@ -13669,6 +13522,16 @@ __metadata: languageName: node linkType: hard +"tinyglobby@npm:^0.2.10": + version: 0.2.10 + resolution: "tinyglobby@npm:0.2.10" + dependencies: + fdir: "npm:^6.4.2" + picomatch: "npm:^4.0.2" + checksum: 10c976866d849702edc47fc3fef27d63f074c40f75ef17171ecc1452967900699fa1e62373681dd58e673ddff2e3f6094bcd0a2101e3e4b30f4c2b9da41397f2 + languageName: node + linkType: hard + "titleize@npm:^3.0.0": version: 3.0.0 resolution: "titleize@npm:3.0.0" @@ -13797,10 +13660,10 @@ __metadata: languageName: node linkType: hard -"tslib@npm:1 || 2, tslib@npm:^2.3.1, tslib@npm:^2.4.0, tslib@npm:^2.5.0, tslib@npm:^2.5.3, tslib@npm:^2.6.0, tslib@npm:^2.6.1, tslib@npm:^2.6.2": - version: 2.6.2 - resolution: "tslib@npm:2.6.2" - checksum: bd26c22d36736513980091a1e356378e8b662ded04204453d353a7f34a4c21ed0afc59b5f90719d4ba756e581a162ecbf93118dc9c6be5acf70aa309188166ca +"tslib@npm:1 || 2, tslib@npm:^2.3.1, tslib@npm:^2.4.0, tslib@npm:^2.5.0, tslib@npm:^2.5.3, tslib@npm:^2.6.0, tslib@npm:^2.6.1, tslib@npm:^2.6.2, tslib@npm:^2.6.3": + version: 2.8.1 + resolution: "tslib@npm:2.8.1" + checksum: 3e2e043d5c2316461cb54e5c7fe02c30ef6dccb3384717ca22ae5c6b5bc95232a6241df19c622d9c73b809bea33b187f6dbc73030963e29950c2141bc32a79f7 languageName: node linkType: hard @@ -13811,13 +13674,6 @@ __metadata: languageName: node linkType: hard -"tslib@npm:^2.6.3": - version: 2.8.1 - resolution: "tslib@npm:2.8.1" - checksum: 3e2e043d5c2316461cb54e5c7fe02c30ef6dccb3384717ca22ae5c6b5bc95232a6241df19c622d9c73b809bea33b187f6dbc73030963e29950c2141bc32a79f7 - languageName: node - linkType: hard - "tsutils@npm:3, tsutils@npm:^3.21.0": version: 3.21.0 resolution: "tsutils@npm:3.21.0" From ceadb103672e12af2ce9ac30b3ab4965ef581f2f Mon Sep 17 00:00:00 2001 From: Sukka Date: Mon, 16 Dec 2024 22:03:20 +0800 Subject: [PATCH 03/20] chore(#331): drop `is-glob` (#332) --- package.json | 2 -- src/index.ts | 14 ++++++++------ yarn.lock | 9 --------- 3 files changed, 8 insertions(+), 17 deletions(-) diff --git a/package.json b/package.json index 3446a453..99e46a4f 100644 --- a/package.json +++ b/package.json @@ -81,7 +81,6 @@ "enhanced-resolve": "^5.15.0", "get-tsconfig": "^4.7.5", "is-bun-module": "^1.0.2", - "is-glob": "^4.0.3", "stable-hash": "^0.0.4", "tinyglobby": "^0.2.10" }, @@ -94,7 +93,6 @@ "@mozilla/glean": "^3.0.0", "@pkgr/rollup": "^4.1.3", "@types/debug": "^4.1.12", - "@types/is-glob": "^4.0.4", "@types/node": "^18.19.67", "@types/unist": "^2.0.11", "dummy.js": "link:dummy.js", diff --git a/src/index.ts b/src/index.ts index 85b3941a..6473283a 100644 --- a/src/index.ts +++ b/src/index.ts @@ -9,9 +9,8 @@ import { createPathsMatcher, getTsconfig } from 'get-tsconfig' import type { TsConfigResult } from 'get-tsconfig' import type { Version } from 'is-bun-module' import { isBunModule } from 'is-bun-module' -import isGlob from 'is-glob' import stableHashExports from 'stable-hash' -import { globSync } from 'tinyglobby' +import { globSync, isDynamicPattern } from 'tinyglobby' // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- esmodule interop const stableHash = stableHashExports.default || stableHashExports @@ -390,10 +389,13 @@ function initMappers(options: InternalResolverOptions) { // turn glob patterns into paths const projectPaths = [ ...new Set([ - ...configPaths.filter(path => !isGlob(path)), - ...globSync([...configPaths.filter(path => isGlob(path)), ...ignore], { - expandDirectories: false, - }), + ...configPaths.filter(path => !isDynamicPattern(path)), + ...globSync( + [...configPaths.filter(path => isDynamicPattern(path)), ...ignore], + { + expandDirectories: false, + }, + ), ]), ] diff --git a/yarn.lock b/yarn.lock index 1b7d6444..073b6a8a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3648,13 +3648,6 @@ __metadata: languageName: node linkType: hard -"@types/is-glob@npm:^4.0.4": - version: 4.0.4 - resolution: "@types/is-glob@npm:4.0.4" - checksum: c790125e2d133d15c9783f6468995841cb06b5634b5c7b30aa32d23129f19d7dc271ec1a904bea4ca1e6a5ba19218a6602753d558f343b4fb8402fed25d17219 - languageName: node - linkType: hard - "@types/json-schema@npm:^7.0.9": version: 7.0.15 resolution: "@types/json-schema@npm:7.0.15" @@ -6158,7 +6151,6 @@ __metadata: "@nolyfill/is-core-module": "npm:1.0.39" "@pkgr/rollup": "npm:^4.1.3" "@types/debug": "npm:^4.1.12" - "@types/is-glob": "npm:^4.0.4" "@types/node": "npm:^18.19.67" "@types/unist": "npm:^2.0.11" debug: "npm:^4.3.7" @@ -6170,7 +6162,6 @@ __metadata: eslint-plugin-import-x: "npm:^4.5.0" get-tsconfig: "npm:^4.7.5" is-bun-module: "npm:^1.0.2" - is-glob: "npm:^4.0.3" lint-staged: "npm:^13.3.0" npm-run-all2: "npm:^5.0.2" prettier: "npm:^2.8.8" From 80ef763603a0f4500d5a356694f16b4f6642c3d8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 1 Jan 2025 00:20:27 +0000 Subject: [PATCH 04/20] chore(deps): update dependency @1stg/eslint-config to v7.0.1 (#336) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 99e46a4f..ce3eda67 100644 --- a/package.json +++ b/package.json @@ -85,7 +85,7 @@ "tinyglobby": "^0.2.10" }, "devDependencies": { - "@1stg/eslint-config": "7", + "@1stg/eslint-config": "7.0.1", "@1stg/lib-config": "^12.0.1", "@changesets/changelog-github": "^0.5.0", "@changesets/cli": "^2.27.10", diff --git a/yarn.lock b/yarn.lock index 073b6a8a..70ffb72c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -76,7 +76,7 @@ __metadata: languageName: node linkType: hard -"@1stg/eslint-config@npm:7, @1stg/eslint-config@npm:^7.0.1": +"@1stg/eslint-config@npm:7.0.1, @1stg/eslint-config@npm:^7.0.1": version: 7.0.1 resolution: "@1stg/eslint-config@npm:7.0.1" dependencies: @@ -6142,7 +6142,7 @@ __metadata: version: 0.0.0-use.local resolution: "eslint-import-resolver-typescript@workspace:." dependencies: - "@1stg/eslint-config": "npm:7" + "@1stg/eslint-config": "npm:7.0.1" "@1stg/lib-config": "npm:^12.0.1" "@changesets/changelog-github": "npm:^0.5.0" "@changesets/cli": "npm:^2.27.10" From c7e4ba1cc999c1e55a1558e8dfe93be2375c138b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 1 Jan 2025 00:20:37 +0000 Subject: [PATCH 05/20] chore(deps): update dependency @changesets/cli to ^2.27.11 (#337) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 48 ++++++++++++++++++++++++------------------------ 2 files changed, 25 insertions(+), 25 deletions(-) diff --git a/package.json b/package.json index ce3eda67..e223fd23 100644 --- a/package.json +++ b/package.json @@ -88,7 +88,7 @@ "@1stg/eslint-config": "7.0.1", "@1stg/lib-config": "^12.0.1", "@changesets/changelog-github": "^0.5.0", - "@changesets/cli": "^2.27.10", + "@changesets/cli": "^2.27.11", "@commitlint/cli": "^17.8.1", "@mozilla/glean": "^3.0.0", "@pkgr/rollup": "^4.1.3", diff --git a/yarn.lock b/yarn.lock index 70ffb72c..bfb191f1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2032,11 +2032,11 @@ __metadata: languageName: node linkType: hard -"@changesets/apply-release-plan@npm:^7.0.6": - version: 7.0.6 - resolution: "@changesets/apply-release-plan@npm:7.0.6" +"@changesets/apply-release-plan@npm:^7.0.7": + version: 7.0.7 + resolution: "@changesets/apply-release-plan@npm:7.0.7" dependencies: - "@changesets/config": "npm:^3.0.4" + "@changesets/config": "npm:^3.0.5" "@changesets/get-version-range-type": "npm:^0.4.0" "@changesets/git": "npm:^3.0.2" "@changesets/should-skip-package": "npm:^0.1.1" @@ -2049,7 +2049,7 @@ __metadata: prettier: "npm:^2.7.1" resolve-from: "npm:^5.0.0" semver: "npm:^7.5.3" - checksum: 98e6d87eed744e26bbca9032bad225a9c29da2189fa37d2cc3fa877b9e7e4dbb1860b56259faf426af470db445471e888ac26978e1380d96e9e917ab0c54259f + checksum: 665490b0739075c50f037ae2bd4e8f7ea2c8815c120cafe91f56f15057f1e0a6f9088dc99e5e249e9c70502f072c8b93fca9f4f7173b9843c2e13a62b5931129 languageName: node linkType: hard @@ -2087,17 +2087,17 @@ __metadata: languageName: node linkType: hard -"@changesets/cli@npm:^2.27.10": - version: 2.27.10 - resolution: "@changesets/cli@npm:2.27.10" +"@changesets/cli@npm:^2.27.11": + version: 2.27.11 + resolution: "@changesets/cli@npm:2.27.11" dependencies: - "@changesets/apply-release-plan": "npm:^7.0.6" + "@changesets/apply-release-plan": "npm:^7.0.7" "@changesets/assemble-release-plan": "npm:^6.0.5" "@changesets/changelog-git": "npm:^0.2.0" - "@changesets/config": "npm:^3.0.4" + "@changesets/config": "npm:^3.0.5" "@changesets/errors": "npm:^0.2.0" "@changesets/get-dependents-graph": "npm:^2.1.2" - "@changesets/get-release-plan": "npm:^4.0.5" + "@changesets/get-release-plan": "npm:^4.0.6" "@changesets/git": "npm:^3.0.2" "@changesets/logger": "npm:^0.1.1" "@changesets/pre": "npm:^2.0.1" @@ -2108,7 +2108,7 @@ __metadata: "@manypkg/get-packages": "npm:^1.1.3" ansi-colors: "npm:^4.1.3" ci-info: "npm:^3.7.0" - enquirer: "npm:^2.3.0" + enquirer: "npm:^2.4.1" external-editor: "npm:^3.1.0" fs-extra: "npm:^7.0.1" mri: "npm:^1.2.0" @@ -2121,13 +2121,13 @@ __metadata: term-size: "npm:^2.1.0" bin: changeset: bin.js - checksum: a0d95aa88f88e952c34aba8f6a36cbc7bdeba60bdfbfb30704532d74eecfa8c0d97ec5f0d16c4ca4cac9d9a1b5f3b34e29dafd3fb183013ce35ccc0840e707e3 + checksum: 9072efec5e23ce71095462c8b8cda5d44adbe04dca68d36d5fd3d8eedaf9de39bd386840f3a57dfef87d3e3ca065cabe2d0aaaf8cf47a9ed743340c723e451ac languageName: node linkType: hard -"@changesets/config@npm:^3.0.4": - version: 3.0.4 - resolution: "@changesets/config@npm:3.0.4" +"@changesets/config@npm:^3.0.5": + version: 3.0.5 + resolution: "@changesets/config@npm:3.0.5" dependencies: "@changesets/errors": "npm:^0.2.0" "@changesets/get-dependents-graph": "npm:^2.1.2" @@ -2136,7 +2136,7 @@ __metadata: "@manypkg/get-packages": "npm:^1.1.3" fs-extra: "npm:^7.0.1" micromatch: "npm:^4.0.8" - checksum: dc59f640bca8e4c88f76f187c8ca9ebae4cdf152559473da9a2193bc5f2ebb9c3709560a8c381855a14858ece63d23000e043ff01c82572fe053f3d13481b797 + checksum: ebb6e5660c26cfd9c499505fdf5c0289b238fa8f6a7ed68d9eae56283d9f661d302d759155bdaff273a8de870fb2cd2dbb9cef62a64c4b4a869745f0e12eae9d languageName: node linkType: hard @@ -2171,17 +2171,17 @@ __metadata: languageName: node linkType: hard -"@changesets/get-release-plan@npm:^4.0.5": - version: 4.0.5 - resolution: "@changesets/get-release-plan@npm:4.0.5" +"@changesets/get-release-plan@npm:^4.0.6": + version: 4.0.6 + resolution: "@changesets/get-release-plan@npm:4.0.6" dependencies: "@changesets/assemble-release-plan": "npm:^6.0.5" - "@changesets/config": "npm:^3.0.4" + "@changesets/config": "npm:^3.0.5" "@changesets/pre": "npm:^2.0.1" "@changesets/read": "npm:^0.6.2" "@changesets/types": "npm:^6.0.0" "@manypkg/get-packages": "npm:^1.1.3" - checksum: f6e7c59d78a8f57f46843153b1113ff312e10fdc61930752b399a2862259c17ea69c44a67fff84961a9c73ac74a7a3ae0cd409da8b41e8f8ccb2d331884627e4 + checksum: 85ac96876d34e4f7830f07753c64309e2e2d07d7d5843f502c25f6bc3bd3f9b4e1d355d82a979b68fabe37b6efe664de85cdce241bfa374ef3439bbbb9f840a0 languageName: node linkType: hard @@ -5759,7 +5759,7 @@ __metadata: languageName: node linkType: hard -"enquirer@npm:^2.3.0, enquirer@npm:^2.4.1": +"enquirer@npm:^2.4.1": version: 2.4.1 resolution: "enquirer@npm:2.4.1" dependencies: @@ -6145,7 +6145,7 @@ __metadata: "@1stg/eslint-config": "npm:7.0.1" "@1stg/lib-config": "npm:^12.0.1" "@changesets/changelog-github": "npm:^0.5.0" - "@changesets/cli": "npm:^2.27.10" + "@changesets/cli": "npm:^2.27.11" "@commitlint/cli": "npm:^17.8.1" "@mozilla/glean": "npm:^3.0.0" "@nolyfill/is-core-module": "npm:1.0.39" From 82a8c532d1c9c7c8811bbbc1bc3e64051e99a2fe Mon Sep 17 00:00:00 2001 From: Hristo Gatsinski Date: Wed, 15 Jan 2025 11:33:18 +0200 Subject: [PATCH 06/20] docs: remove `;` from the configuration example (#338) Co-authored-by: Hristo Gatsinski --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 079b39d9..30686443 100644 --- a/README.md +++ b/README.md @@ -100,7 +100,7 @@ module.exports = [{ "other-packages/*/tsconfig.json" ] }), - ]; + ] } }] ``` From 65eff3825bf081462f722acbe8e01c400874149f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 1 Feb 2025 01:14:43 +0000 Subject: [PATCH 07/20] chore(deps): update dependency @changesets/cli to ^2.27.12 (#339) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/package.json b/package.json index e223fd23..cce296ee 100644 --- a/package.json +++ b/package.json @@ -88,7 +88,7 @@ "@1stg/eslint-config": "7.0.1", "@1stg/lib-config": "^12.0.1", "@changesets/changelog-github": "^0.5.0", - "@changesets/cli": "^2.27.11", + "@changesets/cli": "^2.27.12", "@commitlint/cli": "^17.8.1", "@mozilla/glean": "^3.0.0", "@pkgr/rollup": "^4.1.3", diff --git a/yarn.lock b/yarn.lock index bfb191f1..a00ff1c1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2032,9 +2032,9 @@ __metadata: languageName: node linkType: hard -"@changesets/apply-release-plan@npm:^7.0.7": - version: 7.0.7 - resolution: "@changesets/apply-release-plan@npm:7.0.7" +"@changesets/apply-release-plan@npm:^7.0.8": + version: 7.0.8 + resolution: "@changesets/apply-release-plan@npm:7.0.8" dependencies: "@changesets/config": "npm:^3.0.5" "@changesets/get-version-range-type": "npm:^0.4.0" @@ -2049,7 +2049,7 @@ __metadata: prettier: "npm:^2.7.1" resolve-from: "npm:^5.0.0" semver: "npm:^7.5.3" - checksum: 665490b0739075c50f037ae2bd4e8f7ea2c8815c120cafe91f56f15057f1e0a6f9088dc99e5e249e9c70502f072c8b93fca9f4f7173b9843c2e13a62b5931129 + checksum: ab7dcf8759ebf807c12d8657b7cc5db445f2f3255dc6bd7832c3c5353f4b587f4eadb87746401683296270221f11d6c7b10451b3e0e8fa7ccf5da511ebd95de3 languageName: node linkType: hard @@ -2087,11 +2087,11 @@ __metadata: languageName: node linkType: hard -"@changesets/cli@npm:^2.27.11": - version: 2.27.11 - resolution: "@changesets/cli@npm:2.27.11" +"@changesets/cli@npm:^2.27.12": + version: 2.27.12 + resolution: "@changesets/cli@npm:2.27.12" dependencies: - "@changesets/apply-release-plan": "npm:^7.0.7" + "@changesets/apply-release-plan": "npm:^7.0.8" "@changesets/assemble-release-plan": "npm:^6.0.5" "@changesets/changelog-git": "npm:^0.2.0" "@changesets/config": "npm:^3.0.5" @@ -2121,7 +2121,7 @@ __metadata: term-size: "npm:^2.1.0" bin: changeset: bin.js - checksum: 9072efec5e23ce71095462c8b8cda5d44adbe04dca68d36d5fd3d8eedaf9de39bd386840f3a57dfef87d3e3ca065cabe2d0aaaf8cf47a9ed743340c723e451ac + checksum: 06618abc60ddd9bb82d0380ee6bdea926cce8ebd76e18eb38487fa2501ee1386ffaf55042c8d052d783bcfd2669c51f3eef8b0b0cfc7624486bcec42ac0da9da languageName: node linkType: hard @@ -6145,7 +6145,7 @@ __metadata: "@1stg/eslint-config": "npm:7.0.1" "@1stg/lib-config": "npm:^12.0.1" "@changesets/changelog-github": "npm:^0.5.0" - "@changesets/cli": "npm:^2.27.11" + "@changesets/cli": "npm:^2.27.12" "@commitlint/cli": "npm:^17.8.1" "@mozilla/glean": "npm:^3.0.0" "@nolyfill/is-core-module": "npm:1.0.39" From 23e71568aeb323019d0ed3b595d4f4a3fc238bee Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 1 Feb 2025 01:15:06 +0000 Subject: [PATCH 08/20] chore(deps): update node.js to v18.20.6 (#340) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .nvmrc | 2 +- package.json | 2 +- yarn.lock | 13 +++++++++++-- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/.nvmrc b/.nvmrc index 1117d417..1fc51668 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -18.20.5 +18.20.6 diff --git a/package.json b/package.json index cce296ee..bf63f1fd 100644 --- a/package.json +++ b/package.json @@ -93,7 +93,7 @@ "@mozilla/glean": "^3.0.0", "@pkgr/rollup": "^4.1.3", "@types/debug": "^4.1.12", - "@types/node": "^18.19.67", + "@types/node": "^18.19.74", "@types/unist": "^2.0.11", "dummy.js": "link:dummy.js", "eslint": "^8.57.1", diff --git a/yarn.lock b/yarn.lock index a00ff1c1..2d0b1297 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3724,7 +3724,7 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:^18.0.0, @types/node@npm:^18.19.67": +"@types/node@npm:^18.0.0": version: 18.19.67 resolution: "@types/node@npm:18.19.67" dependencies: @@ -3733,6 +3733,15 @@ __metadata: languageName: node linkType: hard +"@types/node@npm:^18.19.74": + version: 18.19.74 + resolution: "@types/node@npm:18.19.74" + dependencies: + undici-types: "npm:~5.26.4" + checksum: 2306bd0b41cdd528b890b210b96f287a5b5035c128f62636057d6616bd612b3f53d32d77f7e76ef41a9f130ea691e6980e6d5942dd625df05d3a641764fddb78 + languageName: node + linkType: hard + "@types/normalize-package-data@npm:^2.4.0": version: 2.4.4 resolution: "@types/normalize-package-data@npm:2.4.4" @@ -6151,7 +6160,7 @@ __metadata: "@nolyfill/is-core-module": "npm:1.0.39" "@pkgr/rollup": "npm:^4.1.3" "@types/debug": "npm:^4.1.12" - "@types/node": "npm:^18.19.67" + "@types/node": "npm:^18.19.74" "@types/unist": "npm:^2.0.11" debug: "npm:^4.3.7" dummy.js: "link:dummy.js" From c9cfe702e057b70ba097b6f467c0baa84e4f3f82 Mon Sep 17 00:00:00 2001 From: Carlo Corradini Date: Tue, 11 Feb 2025 14:34:21 +0100 Subject: [PATCH 09/20] docs: use import-x/resolver-next instead of import/resolver-next (#342) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 30686443..243a6e8b 100644 --- a/README.md +++ b/README.md @@ -74,7 +74,7 @@ const { module.exports = [{ settings: { - "import/resolver-next": [ + "import-x/resolver-next": [ createTypeScriptImportResolver({ alwaysTryTypes: true, // always try to resolve types under `@types` directory even it doesn't contain any source code, like `@types/unist` From fcc8883c0f023247fcb9a453004f8bd3e6b7c0e2 Mon Sep 17 00:00:00 2001 From: Carlo Corradini Date: Fri, 14 Feb 2025 09:41:16 +0100 Subject: [PATCH 10/20] feat: better algorithm for custom tsconfig paths (#345) * test(fix): tsconfig include typo * feat: better algorithm for custom tsconfig paths * perf: ignore mapper if files is empty * chore: increase size limit to 3kB * chore: changeset --- .changeset/cuddly-kiwis-care.md | 5 + .size-limit.json | 2 +- src/index.ts | 197 ++++++++++++++++++++++------ tests/withJsExtension/tsconfig.json | 2 +- 4 files changed, 161 insertions(+), 45 deletions(-) create mode 100644 .changeset/cuddly-kiwis-care.md diff --git a/.changeset/cuddly-kiwis-care.md b/.changeset/cuddly-kiwis-care.md new file mode 100644 index 00000000..e64d3404 --- /dev/null +++ b/.changeset/cuddly-kiwis-care.md @@ -0,0 +1,5 @@ +--- +'eslint-import-resolver-typescript': minor +--- + +Enable the mapper function just for a set of allowed files. Improves project discovery using glob and POSIX separator. diff --git a/.size-limit.json b/.size-limit.json index 85cbdb5f..0c0657ad 100644 --- a/.size-limit.json +++ b/.size-limit.json @@ -1,6 +1,6 @@ [ { "path": "./lib/index.js", - "limit": "2.8kB" + "limit": "3kB" } ] diff --git a/src/index.ts b/src/index.ts index 6473283a..226d6ec9 100644 --- a/src/index.ts +++ b/src/index.ts @@ -111,7 +111,10 @@ let cachedOptions: InternalResolverOptions | undefined let prevCwd: string let mappersCachedOptions: InternalResolverOptions -let mappers: Array<((specifier: string) => string[]) | null> | undefined +let mappers: Array<{ + files: Set + mapperFn: NonNullable> +}> = [] let resolverCachedOptions: InternalResolverOptions let cachedResolver: Resolver | undefined @@ -159,7 +162,7 @@ export function resolve( resolver = cachedResolver } - log('looking for:', source) + log('looking for', source, 'in', file) source = removeQuerystring(source) @@ -300,34 +303,35 @@ function getMappedPath( paths = [resolved] } } else { - paths = mappers! - .map(mapper => - mapper?.(source).map(item => [ - ...extensions.map(ext => `${item}${ext}`), - ...originalExtensions.map(ext => `${item}/index${ext}`), - ]), - ) - .flat(2) - .filter(mappedPath => { - if (mappedPath === undefined) { - return false - } - - try { - const stat = fs.statSync(mappedPath, { throwIfNoEntry: false }) - if (stat === undefined) return false - if (stat.isFile()) return true - - // Maybe this is a module dir? - if (stat.isDirectory()) { - return isModule(mappedPath) - } - } catch { - return false + paths = [ + ...new Set( + mappers + .filter(({ files }) => files.has(file)) + .map(({ mapperFn }) => + mapperFn(source).map(item => [ + ...extensions.map(ext => `${item}${ext}`), + ...originalExtensions.map(ext => `${item}/index${ext}`), + ]), + ) + .flat(2) + .map(toNativePathSeparator), + ), + ].filter(mappedPath => { + try { + const stat = fs.statSync(mappedPath, { throwIfNoEntry: false }) + if (stat === undefined) return false + if (stat.isFile()) return true + + // Maybe this is a module dir? + if (stat.isDirectory()) { + return isModule(mappedPath) } - + } catch { return false - }) + } + + return false + }) } if (retry && paths.length === 0) { @@ -367,9 +371,10 @@ function getMappedPath( return paths[0] } +// eslint-disable-next-line sonarjs/cognitive-complexity function initMappers(options: InternalResolverOptions) { if ( - mappers && + mappers.length > 0 && mappersCachedOptions === options && prevCwd === process.cwd() ) { @@ -377,40 +382,103 @@ function initMappers(options: InternalResolverOptions) { } prevCwd = process.cwd() - const configPaths = + const configPaths = ( typeof options.project === 'string' ? [options.project] : Array.isArray(options.project) ? options.project : [process.cwd()] + ) // 'tinyglobby' pattern must have POSIX separator + .map(config => replacePathSeparator(config, path.sep, path.posix.sep)) - const ignore = ['!**/node_modules/**'] + // https://github.com/microsoft/TypeScript/blob/df342b7206cb56b56bb3b3aecbb2ee2d2ff7b217/src/compiler/commandLineParser.ts#L3006 + const defaultInclude = ['**/*'] + const defaultIgnore = ['**/node_modules/**'] - // turn glob patterns into paths + // Turn glob patterns into paths const projectPaths = [ ...new Set([ ...configPaths.filter(path => !isDynamicPattern(path)), ...globSync( - [...configPaths.filter(path => isDynamicPattern(path)), ...ignore], + configPaths.filter(path => isDynamicPattern(path)), { expandDirectories: false, + ignore: defaultIgnore, + absolute: true, }, ), ]), ] - mappers = projectPaths.map(projectPath => { - let tsconfigResult: TsConfigResult | null + mappers = projectPaths + .map(projectPath => { + let tsconfigResult: TsConfigResult | null - if (isFile(projectPath)) { - const { dir, base } = path.parse(projectPath) - tsconfigResult = getTsconfig(dir, base) - } else { - tsconfigResult = getTsconfig(projectPath) - } + if (isFile(projectPath)) { + const { dir, base } = path.parse(projectPath) + tsconfigResult = getTsconfig(dir, base) + } else { + tsconfigResult = getTsconfig(projectPath) + } - return tsconfigResult && createPathsMatcher(tsconfigResult) - }) + if (!tsconfigResult) { + // eslint-disable-next-line unicorn/no-useless-undefined + return undefined + } + + const mapperFn = createPathsMatcher(tsconfigResult) + + if (!mapperFn) { + // eslint-disable-next-line unicorn/no-useless-undefined + return undefined + } + + const files = + tsconfigResult.config.files === undefined && + tsconfigResult.config.include === undefined + ? // Include everything if no files or include options + globSync(defaultInclude, { + ignore: [ + ...(tsconfigResult.config.exclude ?? []), + ...defaultIgnore, + ], + absolute: true, + cwd: path.dirname(tsconfigResult.path), + }) + : [ + // https://www.typescriptlang.org/tsconfig/#files + ...(tsconfigResult.config.files !== undefined && + tsconfigResult.config.files.length > 0 + ? tsconfigResult.config.files.map(file => + path.normalize( + path.resolve(path.dirname(tsconfigResult!.path), file), + ), + ) + : []), + // https://www.typescriptlang.org/tsconfig/#include + ...(tsconfigResult.config.include !== undefined && + tsconfigResult.config.include.length > 0 + ? globSync(tsconfigResult.config.include, { + ignore: [ + ...(tsconfigResult.config.exclude ?? []), + ...defaultIgnore, + ], + absolute: true, + }) + : []), + ] + + if (files.length === 0) { + // eslint-disable-next-line unicorn/no-useless-undefined + return undefined + } + + return { + files: new Set(files.map(toNativePathSeparator)), + mapperFn, + } + }) + .filter(isDefined) mappersCachedOptions = options } @@ -427,3 +495,46 @@ function mangleScopedPackage(moduleName: string) { } return moduleName } + +/** + * Replace path `p` from `from` to `to` separator. + * + * @param {string} p Path + * @param {typeof path.sep} from From separator + * @param {typeof path.sep} to To separator + * @returns Path with `to` separator + */ +function replacePathSeparator( + p: string, + from: typeof path.sep, + to: typeof path.sep, +) { + return from === to ? p : p.replaceAll(from, to) +} + +/** + * Replace path `p` separator to its native separator. + * + * @param {string} p Path + * @returns Path with native separator + */ +function toNativePathSeparator(p: string) { + return replacePathSeparator( + p, + path[process.platform === 'win32' ? 'posix' : 'win32'].sep, + path[process.platform === 'win32' ? 'win32' : 'posix'].sep, + ) +} + +/** + * Check if value is defined. + * + * Helper function for TypeScript. + * Should be removed when upgrading to TypeScript >= 5.5. + * + * @param {T | null | undefined} value Value + * @returns `true` if value is defined, `false` otherwise + */ +function isDefined(value: T | null | undefined): value is T { + return value !== null && value !== undefined +} diff --git a/tests/withJsExtension/tsconfig.json b/tests/withJsExtension/tsconfig.json index 13d6d9f0..0cec9f2d 100644 --- a/tests/withJsExtension/tsconfig.json +++ b/tests/withJsExtension/tsconfig.json @@ -6,5 +6,5 @@ "#/*": ["*"] } }, - "includes": ["./**/*"] + "include": ["./**/*"] } From c124e874b6429167b230697ee9f0a69e2efa5f96 Mon Sep 17 00:00:00 2001 From: Carlo Corradini Date: Fri, 14 Feb 2025 09:41:49 +0100 Subject: [PATCH 11/20] chore(deps): update get-tsconfig to latest version (#346) * chore(deps): update get-tsconfig to latest version * chore(deps): yarn dedupe * chore: changeset --- .changeset/witty-insects-brake.md | 5 +++++ package.json | 2 +- yarn.lock | 21 ++++++--------------- 3 files changed, 12 insertions(+), 16 deletions(-) create mode 100644 .changeset/witty-insects-brake.md diff --git a/.changeset/witty-insects-brake.md b/.changeset/witty-insects-brake.md new file mode 100644 index 00000000..ffb95025 --- /dev/null +++ b/.changeset/witty-insects-brake.md @@ -0,0 +1,5 @@ +--- +'eslint-import-resolver-typescript': minor +--- + +Update get-tsconfig to the the latest version. We now support the `${configDir}` variable, introduced in TypeScript 5.5. diff --git a/package.json b/package.json index bf63f1fd..6871f15e 100644 --- a/package.json +++ b/package.json @@ -79,7 +79,7 @@ "@nolyfill/is-core-module": "1.0.39", "debug": "^4.3.7", "enhanced-resolve": "^5.15.0", - "get-tsconfig": "^4.7.5", + "get-tsconfig": "^4.10.0", "is-bun-module": "^1.0.2", "stable-hash": "^0.0.4", "tinyglobby": "^0.2.10" diff --git a/yarn.lock b/yarn.lock index 2d0b1297..31c91a80 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3724,16 +3724,7 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:^18.0.0": - version: 18.19.67 - resolution: "@types/node@npm:18.19.67" - dependencies: - undici-types: "npm:~5.26.4" - checksum: 7bb1d06cd1483dd02462a3dd2894790e5c27ba0fa4cdd4a3da1062d66ed47b66affaab314aa72b346ff3e5538a74d5c3cb14bb1a634547504a1643679738f494 - languageName: node - linkType: hard - -"@types/node@npm:^18.19.74": +"@types/node@npm:^18.0.0, @types/node@npm:^18.19.74": version: 18.19.74 resolution: "@types/node@npm:18.19.74" dependencies: @@ -6169,7 +6160,7 @@ __metadata: eslint-import-resolver-typescript: "link:." eslint-plugin-import: "npm:eslint-plugin-i@^2.29.1" eslint-plugin-import-x: "npm:^4.5.0" - get-tsconfig: "npm:^4.7.5" + get-tsconfig: "npm:^4.10.0" is-bun-module: "npm:^1.0.2" lint-staged: "npm:^13.3.0" npm-run-all2: "npm:^5.0.2" @@ -7331,12 +7322,12 @@ __metadata: languageName: node linkType: hard -"get-tsconfig@npm:^4.7.0, get-tsconfig@npm:^4.7.2, get-tsconfig@npm:^4.7.3, get-tsconfig@npm:^4.7.5": - version: 4.8.1 - resolution: "get-tsconfig@npm:4.8.1" +"get-tsconfig@npm:^4.10.0, get-tsconfig@npm:^4.7.0, get-tsconfig@npm:^4.7.2, get-tsconfig@npm:^4.7.3": + version: 4.10.0 + resolution: "get-tsconfig@npm:4.10.0" dependencies: resolve-pkg-maps: "npm:^1.0.0" - checksum: 3fb5a8ad57b9633eaea085d81661e9e5c9f78b35d8f8689eaf8b8b45a2a3ebf3b3422266d4d7df765e308cc1e6231648d114803ab3d018332e29916f2c1de036 + checksum: 5259b5c99a1957114337d9d0603b4a305ec9e29fa6cac7d2fbf634ba6754a0cc88bfd281a02416ce64e604b637d3cb239185381a79a5842b17fb55c097b38c4b languageName: node linkType: hard From 332affbb5bb35ee8b3f5288c1c22e7a4c0704744 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 14 Feb 2025 16:42:52 +0800 Subject: [PATCH 12/20] chore: release eslint-import-resolver-typescript (#347) Co-authored-by: github-actions[bot] --- .changeset/cuddly-kiwis-care.md | 5 ----- .changeset/witty-insects-brake.md | 5 ----- CHANGELOG.md | 8 ++++++++ package.json | 2 +- 4 files changed, 9 insertions(+), 11 deletions(-) delete mode 100644 .changeset/cuddly-kiwis-care.md delete mode 100644 .changeset/witty-insects-brake.md diff --git a/.changeset/cuddly-kiwis-care.md b/.changeset/cuddly-kiwis-care.md deleted file mode 100644 index e64d3404..00000000 --- a/.changeset/cuddly-kiwis-care.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'eslint-import-resolver-typescript': minor ---- - -Enable the mapper function just for a set of allowed files. Improves project discovery using glob and POSIX separator. diff --git a/.changeset/witty-insects-brake.md b/.changeset/witty-insects-brake.md deleted file mode 100644 index ffb95025..00000000 --- a/.changeset/witty-insects-brake.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'eslint-import-resolver-typescript': minor ---- - -Update get-tsconfig to the the latest version. We now support the `${configDir}` variable, introduced in TypeScript 5.5. diff --git a/CHANGELOG.md b/CHANGELOG.md index fcf2dd91..fa1a2c52 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## 3.8.0 + +### Minor Changes + +- [#345](https://github.com/import-js/eslint-import-resolver-typescript/pull/345) [`fcc8883`](https://github.com/import-js/eslint-import-resolver-typescript/commit/fcc8883c0f023247fcb9a453004f8bd3e6b7c0e2) Thanks [@carlocorradini](https://github.com/carlocorradini)! - Enable the mapper function just for a set of allowed files. Improves project discovery using glob and POSIX separator. + +- [#346](https://github.com/import-js/eslint-import-resolver-typescript/pull/346) [`c124e87`](https://github.com/import-js/eslint-import-resolver-typescript/commit/c124e874b6429167b230697ee9f0a69e2efa5f96) Thanks [@carlocorradini](https://github.com/carlocorradini)! - Update get-tsconfig to the the latest version. We now support the `${configDir}` variable, introduced in TypeScript 5.5. + ## 3.7.0 ### Minor Changes diff --git a/package.json b/package.json index 6871f15e..2c548751 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "eslint-import-resolver-typescript", - "version": "3.7.0", + "version": "3.8.0", "type": "module", "description": "This plugin adds `TypeScript` support to `eslint-plugin-import`", "repository": "git+https://github.com/import-js/eslint-import-resolver-typescript", From e9bceedd00138620db63e38f70bc8803fcff7ad5 Mon Sep 17 00:00:00 2001 From: Carlo Corradini Date: Mon, 17 Feb 2025 10:58:12 +0100 Subject: [PATCH 13/20] docs: from eslint-plugin-i to eslint-plugin-import-x (#350) --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 243a6e8b..22555278 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ [![Code Style: Prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg)](https://github.com/prettier/prettier) [![changesets](https://img.shields.io/badge/maintained%20with-changesets-176de3.svg)](https://github.com/changesets/changesets) -This plugin adds [`TypeScript`][] support to [`eslint-plugin-import`][] (Or maybe you want to try [`eslint-plugin-i`][] for faster speed) +This plugin adds [`TypeScript`][] support to [`eslint-plugin-import`][] (Or maybe you want to try [`eslint-plugin-import-x`][] for faster speed) This means you can: @@ -58,7 +58,7 @@ pnpm i -D eslint-plugin-import eslint-import-resolver-typescript yarn add -D eslint-plugin-import eslint-import-resolver-typescript ``` -**Important when using `eslint-plugin-i` and `npm`**: Use `npm i -D eslint-plugin-import@eslint-plugin-i@latest eslint-import-resolver-typescript`, or you will end up with both `eslint-plugin-import` and `eslint-plugin-i` in your node_modules. +**Important when using `eslint-plugin-import-x` and `npm`**: Use `npm i -D eslint-plugin-import@eslint-plugin-import-x@latest eslint-import-resolver-typescript`, or you will end up with both `eslint-plugin-import` and `eslint-plugin-import-x` in your node_modules. ## Configuration @@ -311,8 +311,8 @@ Detailed changes for each release are documented in [CHANGELOG.md](./CHANGELOG.m [ISC][] -[`eslint-plugin-i`]: https://github.com/un-es/eslint-plugin-i [`eslint-plugin-import`]: https://github.com/import-js/eslint-plugin-import +[`eslint-plugin-import-x`]: https://github.com/un-ts/eslint-plugin-import-x [`enhanced-resolve`]: https://github.com/webpack/enhanced-resolve [`typescript`]: https://www.typescriptlang.org [isc]: https://opensource.org/licenses/ISC From ca140a50dd5b82ddd393219e29c3a15812f2246f Mon Sep 17 00:00:00 2001 From: Carlo Corradini Date: Mon, 17 Feb 2025 18:20:04 +0100 Subject: [PATCH 14/20] chore(ci): matrix.os added windows-latest and macos-latest (#353) --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f3d0b8b4..3f7ed8c0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,9 +13,9 @@ jobs: - 18 - 20 os: - # - macOS-latest - # - windows-latest # I don't have a Windows machine to debug - ubuntu-latest + - windows-latest + - macos-latest runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 From 0c6303d336093ecdac522da0bc1f57ef3ba85f9d Mon Sep 17 00:00:00 2001 From: Carlo Corradini Date: Mon, 17 Feb 2025 18:26:34 +0100 Subject: [PATCH 15/20] Fix issue 348 (#352) * fix: cwd while resolving tsconfig include * chore: changeset --- .changeset/brave-pets-act.md | 5 +++++ src/index.ts | 1 + 2 files changed, 6 insertions(+) create mode 100644 .changeset/brave-pets-act.md diff --git a/.changeset/brave-pets-act.md b/.changeset/brave-pets-act.md new file mode 100644 index 00000000..d1de6dbf --- /dev/null +++ b/.changeset/brave-pets-act.md @@ -0,0 +1,5 @@ +--- +'eslint-import-resolver-typescript': patch +--- + +Set cwd while resolving tsconfig include diff --git a/src/index.ts b/src/index.ts index 226d6ec9..bbd987c7 100644 --- a/src/index.ts +++ b/src/index.ts @@ -464,6 +464,7 @@ function initMappers(options: InternalResolverOptions) { ...defaultIgnore, ], absolute: true, + cwd: path.dirname(tsconfigResult.path), }) : []), ] From 5c374a9944594d3cbbb746709e961c05e092360e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 18 Feb 2025 01:30:04 +0800 Subject: [PATCH 16/20] chore: release eslint-import-resolver-typescript (#355) Co-authored-by: github-actions[bot] --- .changeset/brave-pets-act.md | 5 ----- CHANGELOG.md | 6 ++++++ package.json | 2 +- 3 files changed, 7 insertions(+), 6 deletions(-) delete mode 100644 .changeset/brave-pets-act.md diff --git a/.changeset/brave-pets-act.md b/.changeset/brave-pets-act.md deleted file mode 100644 index d1de6dbf..00000000 --- a/.changeset/brave-pets-act.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'eslint-import-resolver-typescript': patch ---- - -Set cwd while resolving tsconfig include diff --git a/CHANGELOG.md b/CHANGELOG.md index fa1a2c52..3d6c82f7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## 3.8.1 + +### Patch Changes + +- [#352](https://github.com/import-js/eslint-import-resolver-typescript/pull/352) [`0c6303d`](https://github.com/import-js/eslint-import-resolver-typescript/commit/0c6303d336093ecdac522da0bc1f57ef3ba85f9d) Thanks [@carlocorradini](https://github.com/carlocorradini)! - Set cwd while resolving tsconfig include + ## 3.8.0 ### Minor Changes diff --git a/package.json b/package.json index 2c548751..f4c1ed48 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "eslint-import-resolver-typescript", - "version": "3.8.0", + "version": "3.8.1", "type": "module", "description": "This plugin adds `TypeScript` support to `eslint-plugin-import`", "repository": "git+https://github.com/import-js/eslint-import-resolver-typescript", From 5fd349e17c3650aafcc804858a3c3b07cfda8e0d Mon Sep 17 00:00:00 2001 From: Carlo Corradini Date: Tue, 18 Feb 2025 15:51:33 +0100 Subject: [PATCH 17/20] chore(deps): update tinyglobby to the latest version (#357) * chore(deps): update tinyglobby to latest version * chore: changeset * Apply suggestions from code review --------- Co-authored-by: Sukka --- .changeset/forty-cups-grab.md | 5 +++++ package.json | 2 +- yarn.lock | 20 ++++++++++---------- 3 files changed, 16 insertions(+), 11 deletions(-) create mode 100644 .changeset/forty-cups-grab.md diff --git a/.changeset/forty-cups-grab.md b/.changeset/forty-cups-grab.md new file mode 100644 index 00000000..b2d1bb74 --- /dev/null +++ b/.changeset/forty-cups-grab.md @@ -0,0 +1,5 @@ +--- +'eslint-import-resolver-typescript': patch +--- + +Update the `tinyglobby` to the latest version to solve performance regressions. diff --git a/package.json b/package.json index f4c1ed48..19239549 100644 --- a/package.json +++ b/package.json @@ -82,7 +82,7 @@ "get-tsconfig": "^4.10.0", "is-bun-module": "^1.0.2", "stable-hash": "^0.0.4", - "tinyglobby": "^0.2.10" + "tinyglobby": "^0.2.11" }, "devDependencies": { "@1stg/eslint-config": "7.0.1", diff --git a/yarn.lock b/yarn.lock index 31c91a80..845e1129 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6170,7 +6170,7 @@ __metadata: size-limit: "npm:^11.0.0" size-limit-preset-node-lib: "npm:^0.3.0" stable-hash: "npm:^0.0.4" - tinyglobby: "npm:^0.2.10" + tinyglobby: "npm:^0.2.11" type-coverage: "npm:^2.27.0" typescript: "npm:^5.3.2" peerDependencies: @@ -7027,15 +7027,15 @@ __metadata: languageName: node linkType: hard -"fdir@npm:^6.4.2": - version: 6.4.2 - resolution: "fdir@npm:6.4.2" +"fdir@npm:^6.4.3": + version: 6.4.3 + resolution: "fdir@npm:6.4.3" peerDependencies: picomatch: ^3 || ^4 peerDependenciesMeta: picomatch: optional: true - checksum: 5ff80d1d2034e75cc68be175401c9f64c4938a6b2c1e9a0c27f2d211ffbe491fd86d29e4576825d9da8aff9bd465f0283427c2dddc11653457906c46d3bbc448 + checksum: 8e6d20f4590dc168de1374a9cadaa37e20ca6e0b822aa247c230e7ea1d9e9674a68cd816146435e4ecc98f9285091462ab7e5e56eebc9510931a1794e4db68b2 languageName: node linkType: hard @@ -13513,13 +13513,13 @@ __metadata: languageName: node linkType: hard -"tinyglobby@npm:^0.2.10": - version: 0.2.10 - resolution: "tinyglobby@npm:0.2.10" +"tinyglobby@npm:^0.2.11": + version: 0.2.11 + resolution: "tinyglobby@npm:0.2.11" dependencies: - fdir: "npm:^6.4.2" + fdir: "npm:^6.4.3" picomatch: "npm:^4.0.2" - checksum: 10c976866d849702edc47fc3fef27d63f074c40f75ef17171ecc1452967900699fa1e62373681dd58e673ddff2e3f6094bcd0a2101e3e4b30f4c2b9da41397f2 + checksum: 8f10a0cd527041155c0dadd9febb5afc97a95649521f550554868c09beb4cb62ceca1d97536108efe53957967eb54f83a7bed59867f666b325fc3f00ca72fd24 languageName: node linkType: hard From 4f47f8a604eb5cce4b21b5e10078d07e266ae88c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 18 Feb 2025 22:53:35 +0800 Subject: [PATCH 18/20] chore: release eslint-import-resolver-typescript (#358) Co-authored-by: github-actions[bot] --- .changeset/forty-cups-grab.md | 5 ----- CHANGELOG.md | 6 ++++++ package.json | 2 +- 3 files changed, 7 insertions(+), 6 deletions(-) delete mode 100644 .changeset/forty-cups-grab.md diff --git a/.changeset/forty-cups-grab.md b/.changeset/forty-cups-grab.md deleted file mode 100644 index b2d1bb74..00000000 --- a/.changeset/forty-cups-grab.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'eslint-import-resolver-typescript': patch ---- - -Update the `tinyglobby` to the latest version to solve performance regressions. diff --git a/CHANGELOG.md b/CHANGELOG.md index 3d6c82f7..8faa6fa2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## 3.8.2 + +### Patch Changes + +- [#357](https://github.com/import-js/eslint-import-resolver-typescript/pull/357) [`5fd349e`](https://github.com/import-js/eslint-import-resolver-typescript/commit/5fd349e17c3650aafcc804858a3c3b07cfda8e0d) Thanks [@carlocorradini](https://github.com/carlocorradini)! - Update the `tinyglobby` to the latest version to solve performance regressions. + ## 3.8.1 ### Patch Changes diff --git a/package.json b/package.json index 19239549..6f1c9822 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "eslint-import-resolver-typescript", - "version": "3.8.1", + "version": "3.8.2", "type": "module", "description": "This plugin adds `TypeScript` support to `eslint-plugin-import`", "repository": "git+https://github.com/import-js/eslint-import-resolver-typescript", From 81929767a9e440eaa730f4c76b932da7bbd9eed7 Mon Sep 17 00:00:00 2001 From: Carlo Corradini Date: Thu, 20 Feb 2025 11:25:39 +0100 Subject: [PATCH 19/20] fix: force tiniglobby to expand dot directories (#360) * fix: force tiniglobby to expand dot directories * chore: changeset * chore(deps): update tinyglobby to latest version --- .changeset/fast-parrots-applaud.md | 5 +++++ .changeset/forty-beans-tickle.md | 5 +++++ package.json | 5 ++++- src/index.ts | 13 ++++++++----- tests/dotInclude/.dot/index.ts | 18 ++++++++++++++++++ tests/dotInclude/.dot/module/module.d.ts | 1 + tests/dotInclude/.dot/module/package.json | 5 +++++ tests/dotInclude/.dot/subfolder/tsImportee.ts | 1 + .../dotInclude/.dot/subfolder/tsxImportee.tsx | 1 + tests/dotInclude/.dot/tsImportee.ts | 1 + tests/dotInclude/.dot/tsxImportee.tsx | 1 + tests/dotInclude/.eslintrc.cjs | 1 + tests/dotInclude/tsconfig.json | 11 +++++++++++ tests/dotPaths/.dot/module/module.d.ts | 1 + tests/dotPaths/.dot/module/package.json | 5 +++++ tests/dotPaths/.dot/subfolder/tsImportee.ts | 1 + tests/dotPaths/.dot/subfolder/tsxImportee.tsx | 1 + tests/dotPaths/.dot/tsImportee.ts | 1 + tests/dotPaths/.dot/tsxImportee.tsx | 1 + tests/dotPaths/.eslintrc.cjs | 1 + tests/dotPaths/index.ts | 18 ++++++++++++++++++ tests/dotPaths/tsconfig.json | 11 +++++++++++ tests/dotProject/.eslintrc.cjs | 8 ++++++++ .../packages/module-a/.dot/tsconfig.json | 11 +++++++++++ tests/dotProject/packages/module-a/index.ts | 15 +++++++++++++++ .../packages/module-a/subfolder/tsImportee.ts | 1 + .../module-a/subfolder/tsxImportee.tsx | 1 + .../dotProject/packages/module-a/tsImportee.ts | 1 + .../packages/module-a/tsxImportee.tsx | 1 + .../packages/module-b/.dot/tsconfig.json | 11 +++++++++++ tests/dotProject/packages/module-b/index.ts | 15 +++++++++++++++ .../packages/module-b/subfolder/tsImportee.ts | 1 + .../module-b/subfolder/tsxImportee.tsx | 1 + .../dotProject/packages/module-b/tsImportee.ts | 1 + .../packages/module-b/tsxImportee.tsx | 1 + yarn.lock | 10 +++++----- 36 files changed, 175 insertions(+), 11 deletions(-) create mode 100644 .changeset/fast-parrots-applaud.md create mode 100644 .changeset/forty-beans-tickle.md create mode 100644 tests/dotInclude/.dot/index.ts create mode 100644 tests/dotInclude/.dot/module/module.d.ts create mode 100644 tests/dotInclude/.dot/module/package.json create mode 100644 tests/dotInclude/.dot/subfolder/tsImportee.ts create mode 100644 tests/dotInclude/.dot/subfolder/tsxImportee.tsx create mode 100644 tests/dotInclude/.dot/tsImportee.ts create mode 100644 tests/dotInclude/.dot/tsxImportee.tsx create mode 100644 tests/dotInclude/.eslintrc.cjs create mode 100644 tests/dotInclude/tsconfig.json create mode 100644 tests/dotPaths/.dot/module/module.d.ts create mode 100644 tests/dotPaths/.dot/module/package.json create mode 100644 tests/dotPaths/.dot/subfolder/tsImportee.ts create mode 100644 tests/dotPaths/.dot/subfolder/tsxImportee.tsx create mode 100644 tests/dotPaths/.dot/tsImportee.ts create mode 100644 tests/dotPaths/.dot/tsxImportee.tsx create mode 100644 tests/dotPaths/.eslintrc.cjs create mode 100644 tests/dotPaths/index.ts create mode 100644 tests/dotPaths/tsconfig.json create mode 100644 tests/dotProject/.eslintrc.cjs create mode 100644 tests/dotProject/packages/module-a/.dot/tsconfig.json create mode 100644 tests/dotProject/packages/module-a/index.ts create mode 100644 tests/dotProject/packages/module-a/subfolder/tsImportee.ts create mode 100644 tests/dotProject/packages/module-a/subfolder/tsxImportee.tsx create mode 100644 tests/dotProject/packages/module-a/tsImportee.ts create mode 100644 tests/dotProject/packages/module-a/tsxImportee.tsx create mode 100644 tests/dotProject/packages/module-b/.dot/tsconfig.json create mode 100644 tests/dotProject/packages/module-b/index.ts create mode 100644 tests/dotProject/packages/module-b/subfolder/tsImportee.ts create mode 100644 tests/dotProject/packages/module-b/subfolder/tsxImportee.tsx create mode 100644 tests/dotProject/packages/module-b/tsImportee.ts create mode 100644 tests/dotProject/packages/module-b/tsxImportee.tsx diff --git a/.changeset/fast-parrots-applaud.md b/.changeset/fast-parrots-applaud.md new file mode 100644 index 00000000..c8fc6aa5 --- /dev/null +++ b/.changeset/fast-parrots-applaud.md @@ -0,0 +1,5 @@ +--- +'eslint-import-resolver-typescript': patch +--- + +Force tiniglobby to expand dot directories diff --git a/.changeset/forty-beans-tickle.md b/.changeset/forty-beans-tickle.md new file mode 100644 index 00000000..2adc1272 --- /dev/null +++ b/.changeset/forty-beans-tickle.md @@ -0,0 +1,5 @@ +--- +'eslint-import-resolver-typescript': patch +--- + +Update tinyglobby to latest version diff --git a/package.json b/package.json index 6f1c9822..50a52061 100644 --- a/package.json +++ b/package.json @@ -51,6 +51,9 @@ "prepare": "simple-git-hooks", "release": "changeset publish", "test": "run-p 'test:*'", + "test:dotInclude": "eslint --ext ts,tsx tests/dotInclude --ignore-pattern \"!.dot\"", + "test:dotPaths": "eslint --ext ts,tsx tests/dotPaths --ignore-pattern \"!.dot\"", + "test:dotProject": "eslint --ext ts,tsx tests/dotProject --ignore-pattern \"!.dot\"", "test:importXResolverV3": "eslint --config=tests/importXResolverV3/eslint.config.js tests/importXResolverV3", "test:multipleEslintrcs": "eslint --ext ts,tsx tests/multipleEslintrcs", "test:multipleTsconfigs": "eslint --ext ts,tsx tests/multipleTsconfigs", @@ -82,7 +85,7 @@ "get-tsconfig": "^4.10.0", "is-bun-module": "^1.0.2", "stable-hash": "^0.0.4", - "tinyglobby": "^0.2.11" + "tinyglobby": "^0.2.12" }, "devDependencies": { "@1stg/eslint-config": "7.0.1", diff --git a/src/index.ts b/src/index.ts index bbd987c7..bc92c25d 100644 --- a/src/index.ts +++ b/src/index.ts @@ -402,9 +402,10 @@ function initMappers(options: InternalResolverOptions) { ...globSync( configPaths.filter(path => isDynamicPattern(path)), { + absolute: true, + dot: true, expandDirectories: false, ignore: defaultIgnore, - absolute: true, }, ), ]), @@ -438,12 +439,13 @@ function initMappers(options: InternalResolverOptions) { tsconfigResult.config.include === undefined ? // Include everything if no files or include options globSync(defaultInclude, { + absolute: true, + cwd: path.dirname(tsconfigResult.path), + dot: true, ignore: [ ...(tsconfigResult.config.exclude ?? []), ...defaultIgnore, ], - absolute: true, - cwd: path.dirname(tsconfigResult.path), }) : [ // https://www.typescriptlang.org/tsconfig/#files @@ -459,12 +461,13 @@ function initMappers(options: InternalResolverOptions) { ...(tsconfigResult.config.include !== undefined && tsconfigResult.config.include.length > 0 ? globSync(tsconfigResult.config.include, { + absolute: true, + cwd: path.dirname(tsconfigResult.path), + dot: true, ignore: [ ...(tsconfigResult.config.exclude ?? []), ...defaultIgnore, ], - absolute: true, - cwd: path.dirname(tsconfigResult.path), }) : []), ] diff --git a/tests/dotInclude/.dot/index.ts b/tests/dotInclude/.dot/index.ts new file mode 100644 index 00000000..594e79d4 --- /dev/null +++ b/tests/dotInclude/.dot/index.ts @@ -0,0 +1,18 @@ +// import relative +import './tsImportee' +import './tsxImportee' +import './subfolder/tsImportee' +import './subfolder/tsxImportee' + +// import using tsconfig.json path mapping +import 'folder/tsImportee' +import 'folder/tsxImportee' +import 'folder/subfolder/tsImportee' +import 'folder/subfolder/tsxImportee' + +// import module with typings set in package.json +import 'folder/module' + +// import from node_module +import 'typescript' +import 'dummy.js' diff --git a/tests/dotInclude/.dot/module/module.d.ts b/tests/dotInclude/.dot/module/module.d.ts new file mode 100644 index 00000000..336ce12b --- /dev/null +++ b/tests/dotInclude/.dot/module/module.d.ts @@ -0,0 +1 @@ +export {} diff --git a/tests/dotInclude/.dot/module/package.json b/tests/dotInclude/.dot/module/package.json new file mode 100644 index 00000000..f69fe0be --- /dev/null +++ b/tests/dotInclude/.dot/module/package.json @@ -0,0 +1,5 @@ +{ + "type": "commonjs", + "typings": "./module.d.ts", + "private": true +} diff --git a/tests/dotInclude/.dot/subfolder/tsImportee.ts b/tests/dotInclude/.dot/subfolder/tsImportee.ts new file mode 100644 index 00000000..2893e5d0 --- /dev/null +++ b/tests/dotInclude/.dot/subfolder/tsImportee.ts @@ -0,0 +1 @@ +export default 'yes' diff --git a/tests/dotInclude/.dot/subfolder/tsxImportee.tsx b/tests/dotInclude/.dot/subfolder/tsxImportee.tsx new file mode 100644 index 00000000..e500b41b --- /dev/null +++ b/tests/dotInclude/.dot/subfolder/tsxImportee.tsx @@ -0,0 +1 @@ +export default 'React Component' diff --git a/tests/dotInclude/.dot/tsImportee.ts b/tests/dotInclude/.dot/tsImportee.ts new file mode 100644 index 00000000..2893e5d0 --- /dev/null +++ b/tests/dotInclude/.dot/tsImportee.ts @@ -0,0 +1 @@ +export default 'yes' diff --git a/tests/dotInclude/.dot/tsxImportee.tsx b/tests/dotInclude/.dot/tsxImportee.tsx new file mode 100644 index 00000000..e500b41b --- /dev/null +++ b/tests/dotInclude/.dot/tsxImportee.tsx @@ -0,0 +1 @@ +export default 'React Component' diff --git a/tests/dotInclude/.eslintrc.cjs b/tests/dotInclude/.eslintrc.cjs new file mode 100644 index 00000000..7497db66 --- /dev/null +++ b/tests/dotInclude/.eslintrc.cjs @@ -0,0 +1 @@ +module.exports = require('../baseEslintConfig.cjs')(__dirname) diff --git a/tests/dotInclude/tsconfig.json b/tests/dotInclude/tsconfig.json new file mode 100644 index 00000000..496d4f25 --- /dev/null +++ b/tests/dotInclude/tsconfig.json @@ -0,0 +1,11 @@ +{ + "compilerOptions": { + "baseUrl": "./.dot", + "jsx": "react", + "paths": { + "folder/*": ["*"], + "*": ["../../node_modules/*"] + } + }, + "include": ["./**/*.ts", "./**/*.tsx"] +} diff --git a/tests/dotPaths/.dot/module/module.d.ts b/tests/dotPaths/.dot/module/module.d.ts new file mode 100644 index 00000000..336ce12b --- /dev/null +++ b/tests/dotPaths/.dot/module/module.d.ts @@ -0,0 +1 @@ +export {} diff --git a/tests/dotPaths/.dot/module/package.json b/tests/dotPaths/.dot/module/package.json new file mode 100644 index 00000000..f69fe0be --- /dev/null +++ b/tests/dotPaths/.dot/module/package.json @@ -0,0 +1,5 @@ +{ + "type": "commonjs", + "typings": "./module.d.ts", + "private": true +} diff --git a/tests/dotPaths/.dot/subfolder/tsImportee.ts b/tests/dotPaths/.dot/subfolder/tsImportee.ts new file mode 100644 index 00000000..2893e5d0 --- /dev/null +++ b/tests/dotPaths/.dot/subfolder/tsImportee.ts @@ -0,0 +1 @@ +export default 'yes' diff --git a/tests/dotPaths/.dot/subfolder/tsxImportee.tsx b/tests/dotPaths/.dot/subfolder/tsxImportee.tsx new file mode 100644 index 00000000..e500b41b --- /dev/null +++ b/tests/dotPaths/.dot/subfolder/tsxImportee.tsx @@ -0,0 +1 @@ +export default 'React Component' diff --git a/tests/dotPaths/.dot/tsImportee.ts b/tests/dotPaths/.dot/tsImportee.ts new file mode 100644 index 00000000..2893e5d0 --- /dev/null +++ b/tests/dotPaths/.dot/tsImportee.ts @@ -0,0 +1 @@ +export default 'yes' diff --git a/tests/dotPaths/.dot/tsxImportee.tsx b/tests/dotPaths/.dot/tsxImportee.tsx new file mode 100644 index 00000000..e500b41b --- /dev/null +++ b/tests/dotPaths/.dot/tsxImportee.tsx @@ -0,0 +1 @@ +export default 'React Component' diff --git a/tests/dotPaths/.eslintrc.cjs b/tests/dotPaths/.eslintrc.cjs new file mode 100644 index 00000000..7497db66 --- /dev/null +++ b/tests/dotPaths/.eslintrc.cjs @@ -0,0 +1 @@ +module.exports = require('../baseEslintConfig.cjs')(__dirname) diff --git a/tests/dotPaths/index.ts b/tests/dotPaths/index.ts new file mode 100644 index 00000000..3015f9c8 --- /dev/null +++ b/tests/dotPaths/index.ts @@ -0,0 +1,18 @@ +// import relative +import './.dot/tsImportee' +import './.dot/tsxImportee' +import './.dot/subfolder/tsImportee' +import './.dot/subfolder/tsxImportee' + +// import using tsconfig.json path mapping +import 'folder/tsImportee' +import 'folder/tsxImportee' +import 'folder/subfolder/tsImportee' +import 'folder/subfolder/tsxImportee' + +// import module with typings set in package.json +import 'folder/module' + +// import from node_module +import 'typescript' +import 'dummy.js' diff --git a/tests/dotPaths/tsconfig.json b/tests/dotPaths/tsconfig.json new file mode 100644 index 00000000..00d48b2d --- /dev/null +++ b/tests/dotPaths/tsconfig.json @@ -0,0 +1,11 @@ +{ + "compilerOptions": { + "baseUrl": ".", + "jsx": "react", + "paths": { + "folder/*": [".dot/*"], + "*": ["../../node_modules/*"] + } + }, + "files": ["index.ts", ".dot/tsImportee.ts", ".dot/tsxImportee.tsx"] +} diff --git a/tests/dotProject/.eslintrc.cjs b/tests/dotProject/.eslintrc.cjs new file mode 100644 index 00000000..ed98ca71 --- /dev/null +++ b/tests/dotProject/.eslintrc.cjs @@ -0,0 +1,8 @@ +const path = require('path') + +const globPattern = './packages/*/*/tsconfig.json' + +// in normal cases this is not needed because the __dirname would be the root +const absoluteGlobPath = path.join(__dirname, globPattern) + +module.exports = require('../baseEslintConfig.cjs')(absoluteGlobPath) diff --git a/tests/dotProject/packages/module-a/.dot/tsconfig.json b/tests/dotProject/packages/module-a/.dot/tsconfig.json new file mode 100644 index 00000000..6beb6104 --- /dev/null +++ b/tests/dotProject/packages/module-a/.dot/tsconfig.json @@ -0,0 +1,11 @@ +{ + "compilerOptions": { + "baseUrl": "../", + "jsx": "react", + "paths": { + "folder/*": ["*"], + "*": ["../../../../node_modules/*"] + } + }, + "files": ["../index.ts", "../tsImportee.ts", "../tsxImportee.tsx"] +} diff --git a/tests/dotProject/packages/module-a/index.ts b/tests/dotProject/packages/module-a/index.ts new file mode 100644 index 00000000..8d011e92 --- /dev/null +++ b/tests/dotProject/packages/module-a/index.ts @@ -0,0 +1,15 @@ +// import relative +import './tsImportee' +import './tsxImportee' +import './subfolder/tsImportee' +import './subfolder/tsxImportee' + +// import using tsconfig.json path mapping +import 'folder/tsImportee' +import 'folder/tsxImportee' +import 'folder/subfolder/tsImportee' +import 'folder/subfolder/tsxImportee' + +// import from node_module +import 'typescript' +import 'dummy.js' diff --git a/tests/dotProject/packages/module-a/subfolder/tsImportee.ts b/tests/dotProject/packages/module-a/subfolder/tsImportee.ts new file mode 100644 index 00000000..2893e5d0 --- /dev/null +++ b/tests/dotProject/packages/module-a/subfolder/tsImportee.ts @@ -0,0 +1 @@ +export default 'yes' diff --git a/tests/dotProject/packages/module-a/subfolder/tsxImportee.tsx b/tests/dotProject/packages/module-a/subfolder/tsxImportee.tsx new file mode 100644 index 00000000..e500b41b --- /dev/null +++ b/tests/dotProject/packages/module-a/subfolder/tsxImportee.tsx @@ -0,0 +1 @@ +export default 'React Component' diff --git a/tests/dotProject/packages/module-a/tsImportee.ts b/tests/dotProject/packages/module-a/tsImportee.ts new file mode 100644 index 00000000..2893e5d0 --- /dev/null +++ b/tests/dotProject/packages/module-a/tsImportee.ts @@ -0,0 +1 @@ +export default 'yes' diff --git a/tests/dotProject/packages/module-a/tsxImportee.tsx b/tests/dotProject/packages/module-a/tsxImportee.tsx new file mode 100644 index 00000000..e500b41b --- /dev/null +++ b/tests/dotProject/packages/module-a/tsxImportee.tsx @@ -0,0 +1 @@ +export default 'React Component' diff --git a/tests/dotProject/packages/module-b/.dot/tsconfig.json b/tests/dotProject/packages/module-b/.dot/tsconfig.json new file mode 100644 index 00000000..6beb6104 --- /dev/null +++ b/tests/dotProject/packages/module-b/.dot/tsconfig.json @@ -0,0 +1,11 @@ +{ + "compilerOptions": { + "baseUrl": "../", + "jsx": "react", + "paths": { + "folder/*": ["*"], + "*": ["../../../../node_modules/*"] + } + }, + "files": ["../index.ts", "../tsImportee.ts", "../tsxImportee.tsx"] +} diff --git a/tests/dotProject/packages/module-b/index.ts b/tests/dotProject/packages/module-b/index.ts new file mode 100644 index 00000000..8d011e92 --- /dev/null +++ b/tests/dotProject/packages/module-b/index.ts @@ -0,0 +1,15 @@ +// import relative +import './tsImportee' +import './tsxImportee' +import './subfolder/tsImportee' +import './subfolder/tsxImportee' + +// import using tsconfig.json path mapping +import 'folder/tsImportee' +import 'folder/tsxImportee' +import 'folder/subfolder/tsImportee' +import 'folder/subfolder/tsxImportee' + +// import from node_module +import 'typescript' +import 'dummy.js' diff --git a/tests/dotProject/packages/module-b/subfolder/tsImportee.ts b/tests/dotProject/packages/module-b/subfolder/tsImportee.ts new file mode 100644 index 00000000..2893e5d0 --- /dev/null +++ b/tests/dotProject/packages/module-b/subfolder/tsImportee.ts @@ -0,0 +1 @@ +export default 'yes' diff --git a/tests/dotProject/packages/module-b/subfolder/tsxImportee.tsx b/tests/dotProject/packages/module-b/subfolder/tsxImportee.tsx new file mode 100644 index 00000000..e500b41b --- /dev/null +++ b/tests/dotProject/packages/module-b/subfolder/tsxImportee.tsx @@ -0,0 +1 @@ +export default 'React Component' diff --git a/tests/dotProject/packages/module-b/tsImportee.ts b/tests/dotProject/packages/module-b/tsImportee.ts new file mode 100644 index 00000000..2893e5d0 --- /dev/null +++ b/tests/dotProject/packages/module-b/tsImportee.ts @@ -0,0 +1 @@ +export default 'yes' diff --git a/tests/dotProject/packages/module-b/tsxImportee.tsx b/tests/dotProject/packages/module-b/tsxImportee.tsx new file mode 100644 index 00000000..e500b41b --- /dev/null +++ b/tests/dotProject/packages/module-b/tsxImportee.tsx @@ -0,0 +1 @@ +export default 'React Component' diff --git a/yarn.lock b/yarn.lock index 845e1129..420dcfa3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6170,7 +6170,7 @@ __metadata: size-limit: "npm:^11.0.0" size-limit-preset-node-lib: "npm:^0.3.0" stable-hash: "npm:^0.0.4" - tinyglobby: "npm:^0.2.11" + tinyglobby: "npm:^0.2.12" type-coverage: "npm:^2.27.0" typescript: "npm:^5.3.2" peerDependencies: @@ -13513,13 +13513,13 @@ __metadata: languageName: node linkType: hard -"tinyglobby@npm:^0.2.11": - version: 0.2.11 - resolution: "tinyglobby@npm:0.2.11" +"tinyglobby@npm:^0.2.12": + version: 0.2.12 + resolution: "tinyglobby@npm:0.2.12" dependencies: fdir: "npm:^6.4.3" picomatch: "npm:^4.0.2" - checksum: 8f10a0cd527041155c0dadd9febb5afc97a95649521f550554868c09beb4cb62ceca1d97536108efe53957967eb54f83a7bed59867f666b325fc3f00ca72fd24 + checksum: 4ad28701fa9118b32ef0e27f409e0a6c5741e8b02286d50425c1f6f71e6d6c6ded9dd5bbbbb714784b08623c4ec4d150151f1d3d996cfabe0495f908ab4f7002 languageName: node linkType: hard From b61fb4a894d20c38d1ac4656c395de2c30e4c27b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 20 Feb 2025 18:39:56 +0800 Subject: [PATCH 20/20] chore: release eslint-import-resolver-typescript (#362) Co-authored-by: github-actions[bot] --- .changeset/fast-parrots-applaud.md | 5 ----- .changeset/forty-beans-tickle.md | 5 ----- CHANGELOG.md | 8 ++++++++ package.json | 2 +- 4 files changed, 9 insertions(+), 11 deletions(-) delete mode 100644 .changeset/fast-parrots-applaud.md delete mode 100644 .changeset/forty-beans-tickle.md diff --git a/.changeset/fast-parrots-applaud.md b/.changeset/fast-parrots-applaud.md deleted file mode 100644 index c8fc6aa5..00000000 --- a/.changeset/fast-parrots-applaud.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'eslint-import-resolver-typescript': patch ---- - -Force tiniglobby to expand dot directories diff --git a/.changeset/forty-beans-tickle.md b/.changeset/forty-beans-tickle.md deleted file mode 100644 index 2adc1272..00000000 --- a/.changeset/forty-beans-tickle.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'eslint-import-resolver-typescript': patch ---- - -Update tinyglobby to latest version diff --git a/CHANGELOG.md b/CHANGELOG.md index 8faa6fa2..1dd6496f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## 3.8.3 + +### Patch Changes + +- [#360](https://github.com/import-js/eslint-import-resolver-typescript/pull/360) [`8192976`](https://github.com/import-js/eslint-import-resolver-typescript/commit/81929767a9e440eaa730f4c76b932da7bbd9eed7) Thanks [@carlocorradini](https://github.com/carlocorradini)! - Force tiniglobby to expand dot directories + +- [#360](https://github.com/import-js/eslint-import-resolver-typescript/pull/360) [`8192976`](https://github.com/import-js/eslint-import-resolver-typescript/commit/81929767a9e440eaa730f4c76b932da7bbd9eed7) Thanks [@carlocorradini](https://github.com/carlocorradini)! - Update tinyglobby to latest version + ## 3.8.2 ### Patch Changes diff --git a/package.json b/package.json index 50a52061..758c4c91 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "eslint-import-resolver-typescript", - "version": "3.8.2", + "version": "3.8.3", "type": "module", "description": "This plugin adds `TypeScript` support to `eslint-plugin-import`", "repository": "git+https://github.com/import-js/eslint-import-resolver-typescript", pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy