diff --git a/CHANGELOG.md b/CHANGELOG.md index 3d6c82f7..1dd6496f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,19 @@ # 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 + +- [#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 f4c1ed48..758c4c91 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "eslint-import-resolver-typescript", - "version": "3.8.1", + "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", @@ -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.10" + "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 31c91a80..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.10" + tinyglobby: "npm:^0.2.12" 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.12": + version: 0.2.12 + resolution: "tinyglobby@npm:0.2.12" dependencies: - fdir: "npm:^6.4.2" + fdir: "npm:^6.4.3" picomatch: "npm:^4.0.2" - checksum: 10c976866d849702edc47fc3fef27d63f074c40f75ef17171ecc1452967900699fa1e62373681dd58e673ddff2e3f6094bcd0a2101e3e4b30f4c2b9da41397f2 + checksum: 4ad28701fa9118b32ef0e27f409e0a6c5741e8b02286d50425c1f6f71e6d6c6ded9dd5bbbbb714784b08623c4ec4d150151f1d3d996cfabe0495f908ab4f7002 languageName: node linkType: hard 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