Skip to content

Commit 94a045d

Browse files
fix: force tiniglobby to expand dot directories
1 parent 4f47f8a commit 94a045d

33 files changed

+159
-5
lines changed

package.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,9 @@
5151
"prepare": "simple-git-hooks",
5252
"release": "changeset publish",
5353
"test": "run-p 'test:*'",
54+
"test:dotInclude": "eslint --ext ts,tsx tests/dotInclude --ignore-pattern \"!.dot\"",
55+
"test:dotPaths": "eslint --ext ts,tsx tests/dotPaths --ignore-pattern \"!.dot\"",
56+
"test:dotProject": "eslint --ext ts,tsx tests/dotProject --ignore-pattern \"!.dot\"",
5457
"test:importXResolverV3": "eslint --config=tests/importXResolverV3/eslint.config.js tests/importXResolverV3",
5558
"test:multipleEslintrcs": "eslint --ext ts,tsx tests/multipleEslintrcs",
5659
"test:multipleTsconfigs": "eslint --ext ts,tsx tests/multipleTsconfigs",

src/index.ts

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -402,9 +402,10 @@ function initMappers(options: InternalResolverOptions) {
402402
...globSync(
403403
configPaths.filter(path => isDynamicPattern(path)),
404404
{
405+
absolute: true,
406+
dot: true,
405407
expandDirectories: false,
406408
ignore: defaultIgnore,
407-
absolute: true,
408409
},
409410
),
410411
]),
@@ -438,12 +439,13 @@ function initMappers(options: InternalResolverOptions) {
438439
tsconfigResult.config.include === undefined
439440
? // Include everything if no files or include options
440441
globSync(defaultInclude, {
442+
absolute: true,
443+
cwd: path.dirname(tsconfigResult.path),
444+
dot: true,
441445
ignore: [
442446
...(tsconfigResult.config.exclude ?? []),
443447
...defaultIgnore,
444448
],
445-
absolute: true,
446-
cwd: path.dirname(tsconfigResult.path),
447449
})
448450
: [
449451
// https://www.typescriptlang.org/tsconfig/#files
@@ -459,12 +461,13 @@ function initMappers(options: InternalResolverOptions) {
459461
...(tsconfigResult.config.include !== undefined &&
460462
tsconfigResult.config.include.length > 0
461463
? globSync(tsconfigResult.config.include, {
464+
absolute: true,
465+
cwd: path.dirname(tsconfigResult.path),
466+
dot: true,
462467
ignore: [
463468
...(tsconfigResult.config.exclude ?? []),
464469
...defaultIgnore,
465470
],
466-
absolute: true,
467-
cwd: path.dirname(tsconfigResult.path),
468471
})
469472
: []),
470473
]

tests/dotInclude/.dot/index.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
// import relative
2+
import './tsImportee'
3+
import './tsxImportee'
4+
import './subfolder/tsImportee'
5+
import './subfolder/tsxImportee'
6+
7+
// import using tsconfig.json path mapping
8+
import 'folder/tsImportee'
9+
import 'folder/tsxImportee'
10+
import 'folder/subfolder/tsImportee'
11+
import 'folder/subfolder/tsxImportee'
12+
13+
// import module with typings set in package.json
14+
import 'folder/module'
15+
16+
// import from node_module
17+
import 'typescript'
18+
import 'dummy.js'
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export {}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"type": "commonjs",
3+
"typings": "./module.d.ts",
4+
"private": true
5+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export default 'yes'
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export default 'React Component'

tests/dotInclude/.dot/tsImportee.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export default 'yes'

tests/dotInclude/.dot/tsxImportee.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export default 'React Component'

tests/dotInclude/.eslintrc.cjs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
module.exports = require('../baseEslintConfig.cjs')(__dirname)

tests/dotInclude/tsconfig.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"compilerOptions": {
3+
"baseUrl": "./.dot",
4+
"jsx": "react",
5+
"paths": {
6+
"folder/*": ["*"],
7+
"*": ["../../node_modules/*"]
8+
}
9+
},
10+
"include": ["./**/*.ts", "./**/*.tsx"]
11+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export {}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"type": "commonjs",
3+
"typings": "./module.d.ts",
4+
"private": true
5+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export default 'yes'
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export default 'React Component'

tests/dotPaths/.dot/tsImportee.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export default 'yes'

tests/dotPaths/.dot/tsxImportee.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export default 'React Component'

tests/dotPaths/.eslintrc.cjs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
module.exports = require('../baseEslintConfig.cjs')(__dirname)

tests/dotPaths/index.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
// import relative
2+
import './.dot/tsImportee'
3+
import './.dot/tsxImportee'
4+
import './.dot/subfolder/tsImportee'
5+
import './.dot/subfolder/tsxImportee'
6+
7+
// import using tsconfig.json path mapping
8+
import 'folder/tsImportee'
9+
import 'folder/tsxImportee'
10+
import 'folder/subfolder/tsImportee'
11+
import 'folder/subfolder/tsxImportee'
12+
13+
// import module with typings set in package.json
14+
import 'folder/module'
15+
16+
// import from node_module
17+
import 'typescript'
18+
import 'dummy.js'

tests/dotPaths/tsconfig.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"compilerOptions": {
3+
"baseUrl": ".",
4+
"jsx": "react",
5+
"paths": {
6+
"folder/*": [".dot/*"],
7+
"*": ["../../node_modules/*"]
8+
}
9+
},
10+
"files": ["index.ts", ".dot/tsImportee.ts", ".dot/tsxImportee.tsx"]
11+
}

tests/dotProject/.eslintrc.cjs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
const path = require('path')
2+
3+
const globPattern = './packages/*/*/tsconfig.json'
4+
5+
// in normal cases this is not needed because the __dirname would be the root
6+
const absoluteGlobPath = path.join(__dirname, globPattern)
7+
8+
module.exports = require('../baseEslintConfig.cjs')(absoluteGlobPath)
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"compilerOptions": {
3+
"baseUrl": "../",
4+
"jsx": "react",
5+
"paths": {
6+
"folder/*": ["*"],
7+
"*": ["../../../../node_modules/*"]
8+
}
9+
},
10+
"files": ["../index.ts", "../tsImportee.ts", "../tsxImportee.tsx"]
11+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
// import relative
2+
import './tsImportee'
3+
import './tsxImportee'
4+
import './subfolder/tsImportee'
5+
import './subfolder/tsxImportee'
6+
7+
// import using tsconfig.json path mapping
8+
import 'folder/tsImportee'
9+
import 'folder/tsxImportee'
10+
import 'folder/subfolder/tsImportee'
11+
import 'folder/subfolder/tsxImportee'
12+
13+
// import from node_module
14+
import 'typescript'
15+
import 'dummy.js'
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export default 'yes'
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export default 'React Component'
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export default 'yes'
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export default 'React Component'
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"compilerOptions": {
3+
"baseUrl": "../",
4+
"jsx": "react",
5+
"paths": {
6+
"folder/*": ["*"],
7+
"*": ["../../../../node_modules/*"]
8+
}
9+
},
10+
"files": ["../index.ts", "../tsImportee.ts", "../tsxImportee.tsx"]
11+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
// import relative
2+
import './tsImportee'
3+
import './tsxImportee'
4+
import './subfolder/tsImportee'
5+
import './subfolder/tsxImportee'
6+
7+
// import using tsconfig.json path mapping
8+
import 'folder/tsImportee'
9+
import 'folder/tsxImportee'
10+
import 'folder/subfolder/tsImportee'
11+
import 'folder/subfolder/tsxImportee'
12+
13+
// import from node_module
14+
import 'typescript'
15+
import 'dummy.js'
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export default 'yes'
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export default 'React Component'
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export default 'yes'
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export default 'React Component'

0 commit comments

Comments
 (0)