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
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: