Skip to content

fix: absolute path aliasing should not be skipped #410

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Mar 26, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/quiet-moons-sell.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"eslint-import-resolver-typescript": patch
---

fix: absolute path aliasing should not be skipped
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@
"prepare": "simple-git-hooks && yarn-berry-deduplicate || exit 0",
"release": "clean-pkg-json && changeset publish",
"test": "run-p 'test:*'",
"test:absoluteAlias": "yarn eslint --ext ts,tsx tests/absoluteAlias",
"test:dotInclude": "yarn eslint --ext ts,tsx tests/dotInclude --ignore-pattern \"!.dot\"",
"test:dotPaths": "yarn eslint --ext ts,tsx tests/dotPaths --ignore-pattern \"!.dot\"",
"test:dotProject": "yarn eslint --ext ts,tsx tests/dotProject --ignore-pattern \"!.dot\"",
Expand Down Expand Up @@ -82,7 +83,7 @@
"is-bun-module": "^2.0.0",
"stable-hash": "^0.0.5",
"tinyglobby": "^0.2.12",
"unrs-resolver": "^1.3.1"
"unrs-resolver": "^1.3.2"
},
"devDependencies": {
"@1stg/common-config": "^11.1.0",
Expand Down
6 changes: 3 additions & 3 deletions src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ const tsconfigCache = new Map<string, TsConfigJsonResolved>()

const matcherCache = new Map<string, FileMatcher>()

const oxcResolve = (
const unrsResolve = (
source: string,
file: string,
resolver: ResolverFactory,
Expand Down Expand Up @@ -157,7 +157,7 @@ export const resolve = (
}
}

const resolved = oxcResolve(source, file, resolver)
const resolved = unrsResolve(source, file, resolver)

const foundPath = resolved.path

Expand All @@ -170,7 +170,7 @@ export const resolve = (
!path.isAbsolute(source) &&
!source.startsWith('.')
) {
const definitelyTyped = oxcResolve(
const definitelyTyped = unrsResolve(
'@types/' + mangleScopedPackage(source),
file,
resolver,
Expand Down
3 changes: 2 additions & 1 deletion src/normalize-options.ts
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,9 @@ export function normalizeOptions(
configFile = tryFile(configFile)
ensured = true
} else if (project) {
project = Array.isArray(project) ? project : [project]
log('original projects:', ...project)
project = (Array.isArray(project) ? project : [project]).map(toGlobPath)
project = project.map(toGlobPath)
if (project.some(p => isDynamicPattern(p))) {
project = globSync(project, {
absolute: true,
Expand Down
1 change: 1 addition & 0 deletions tests/absoluteAlias/.eslintrc.cjs
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
module.exports = require('../base.eslintrc.cjs')(__dirname)
1 change: 1 addition & 0 deletions tests/absoluteAlias/public/images/foo.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export default 'image.webp'
3 changes: 3 additions & 0 deletions tests/absoluteAlias/test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import image from '/images/foo.js'

console.log(image)
7 changes: 7 additions & 0 deletions tests/absoluteAlias/tsconfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"compilerOptions": {
"paths": {
"/*": ["./public/*"]
}
}
}
3 changes: 3 additions & 0 deletions tests/base.eslintrc.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,9 @@ const base = project => ({
overrides: [
{
files: '**/.*.cjs',
env: {
node: true,
},
rules: {
'@typescript-eslint/no-require-imports': 'off',
},
Expand Down
132 changes: 66 additions & 66 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -4125,109 +4125,109 @@ __metadata:
languageName: node
linkType: hard

"@unrs/resolver-binding-darwin-arm64@npm:1.3.1":
version: 1.3.1
resolution: "@unrs/resolver-binding-darwin-arm64@npm:1.3.1"
"@unrs/resolver-binding-darwin-arm64@npm:1.3.2":
version: 1.3.2
resolution: "@unrs/resolver-binding-darwin-arm64@npm:1.3.2"
conditions: os=darwin & cpu=arm64
languageName: node
linkType: hard

"@unrs/resolver-binding-darwin-x64@npm:1.3.1":
version: 1.3.1
resolution: "@unrs/resolver-binding-darwin-x64@npm:1.3.1"
"@unrs/resolver-binding-darwin-x64@npm:1.3.2":
version: 1.3.2
resolution: "@unrs/resolver-binding-darwin-x64@npm:1.3.2"
conditions: os=darwin & cpu=x64
languageName: node
linkType: hard

"@unrs/resolver-binding-freebsd-x64@npm:1.3.1":
version: 1.3.1
resolution: "@unrs/resolver-binding-freebsd-x64@npm:1.3.1"
"@unrs/resolver-binding-freebsd-x64@npm:1.3.2":
version: 1.3.2
resolution: "@unrs/resolver-binding-freebsd-x64@npm:1.3.2"
conditions: os=freebsd & cpu=x64
languageName: node
linkType: hard

"@unrs/resolver-binding-linux-arm-gnueabihf@npm:1.3.1":
version: 1.3.1
resolution: "@unrs/resolver-binding-linux-arm-gnueabihf@npm:1.3.1"
"@unrs/resolver-binding-linux-arm-gnueabihf@npm:1.3.2":
version: 1.3.2
resolution: "@unrs/resolver-binding-linux-arm-gnueabihf@npm:1.3.2"
conditions: os=linux & cpu=arm
languageName: node
linkType: hard

"@unrs/resolver-binding-linux-arm-musleabihf@npm:1.3.1":
version: 1.3.1
resolution: "@unrs/resolver-binding-linux-arm-musleabihf@npm:1.3.1"
"@unrs/resolver-binding-linux-arm-musleabihf@npm:1.3.2":
version: 1.3.2
resolution: "@unrs/resolver-binding-linux-arm-musleabihf@npm:1.3.2"
conditions: os=linux & cpu=arm
languageName: node
linkType: hard

"@unrs/resolver-binding-linux-arm64-gnu@npm:1.3.1":
version: 1.3.1
resolution: "@unrs/resolver-binding-linux-arm64-gnu@npm:1.3.1"
"@unrs/resolver-binding-linux-arm64-gnu@npm:1.3.2":
version: 1.3.2
resolution: "@unrs/resolver-binding-linux-arm64-gnu@npm:1.3.2"
conditions: os=linux & cpu=arm64 & libc=glibc
languageName: node
linkType: hard

"@unrs/resolver-binding-linux-arm64-musl@npm:1.3.1":
version: 1.3.1
resolution: "@unrs/resolver-binding-linux-arm64-musl@npm:1.3.1"
"@unrs/resolver-binding-linux-arm64-musl@npm:1.3.2":
version: 1.3.2
resolution: "@unrs/resolver-binding-linux-arm64-musl@npm:1.3.2"
conditions: os=linux & cpu=arm64 & libc=musl
languageName: node
linkType: hard

"@unrs/resolver-binding-linux-ppc64-gnu@npm:1.3.1":
version: 1.3.1
resolution: "@unrs/resolver-binding-linux-ppc64-gnu@npm:1.3.1"
"@unrs/resolver-binding-linux-ppc64-gnu@npm:1.3.2":
version: 1.3.2
resolution: "@unrs/resolver-binding-linux-ppc64-gnu@npm:1.3.2"
conditions: os=linux & cpu=ppc64 & libc=glibc
languageName: node
linkType: hard

"@unrs/resolver-binding-linux-s390x-gnu@npm:1.3.1":
version: 1.3.1
resolution: "@unrs/resolver-binding-linux-s390x-gnu@npm:1.3.1"
"@unrs/resolver-binding-linux-s390x-gnu@npm:1.3.2":
version: 1.3.2
resolution: "@unrs/resolver-binding-linux-s390x-gnu@npm:1.3.2"
conditions: os=linux & cpu=s390x & libc=glibc
languageName: node
linkType: hard

"@unrs/resolver-binding-linux-x64-gnu@npm:1.3.1":
version: 1.3.1
resolution: "@unrs/resolver-binding-linux-x64-gnu@npm:1.3.1"
"@unrs/resolver-binding-linux-x64-gnu@npm:1.3.2":
version: 1.3.2
resolution: "@unrs/resolver-binding-linux-x64-gnu@npm:1.3.2"
conditions: os=linux & cpu=x64 & libc=glibc
languageName: node
linkType: hard

"@unrs/resolver-binding-linux-x64-musl@npm:1.3.1":
version: 1.3.1
resolution: "@unrs/resolver-binding-linux-x64-musl@npm:1.3.1"
"@unrs/resolver-binding-linux-x64-musl@npm:1.3.2":
version: 1.3.2
resolution: "@unrs/resolver-binding-linux-x64-musl@npm:1.3.2"
conditions: os=linux & cpu=x64 & libc=musl
languageName: node
linkType: hard

"@unrs/resolver-binding-wasm32-wasi@npm:1.3.1":
version: 1.3.1
resolution: "@unrs/resolver-binding-wasm32-wasi@npm:1.3.1"
"@unrs/resolver-binding-wasm32-wasi@npm:1.3.2":
version: 1.3.2
resolution: "@unrs/resolver-binding-wasm32-wasi@npm:1.3.2"
dependencies:
"@napi-rs/wasm-runtime": "npm:^0.2.7"
conditions: cpu=wasm32
languageName: node
linkType: hard

"@unrs/resolver-binding-win32-arm64-msvc@npm:1.3.1":
version: 1.3.1
resolution: "@unrs/resolver-binding-win32-arm64-msvc@npm:1.3.1"
"@unrs/resolver-binding-win32-arm64-msvc@npm:1.3.2":
version: 1.3.2
resolution: "@unrs/resolver-binding-win32-arm64-msvc@npm:1.3.2"
conditions: os=win32 & cpu=arm64
languageName: node
linkType: hard

"@unrs/resolver-binding-win32-ia32-msvc@npm:1.3.1":
version: 1.3.1
resolution: "@unrs/resolver-binding-win32-ia32-msvc@npm:1.3.1"
"@unrs/resolver-binding-win32-ia32-msvc@npm:1.3.2":
version: 1.3.2
resolution: "@unrs/resolver-binding-win32-ia32-msvc@npm:1.3.2"
conditions: os=win32 & cpu=ia32
languageName: node
linkType: hard

"@unrs/resolver-binding-win32-x64-msvc@npm:1.3.1":
version: 1.3.1
resolution: "@unrs/resolver-binding-win32-x64-msvc@npm:1.3.1"
"@unrs/resolver-binding-win32-x64-msvc@npm:1.3.2":
version: 1.3.2
resolution: "@unrs/resolver-binding-win32-x64-msvc@npm:1.3.2"
conditions: os=win32 & cpu=x64
languageName: node
linkType: hard
Expand Down Expand Up @@ -6663,7 +6663,7 @@ __metadata:
tinyglobby: "npm:^0.2.12"
type-coverage: "npm:^2.29.7"
typescript: "npm:~5.8.2"
unrs-resolver: "npm:^1.3.1"
unrs-resolver: "npm:^1.3.2"
vitest: "npm:^3.0.9"
yarn-berry-deduplicate: "npm:^6.1.1"
peerDependencies:
Expand Down Expand Up @@ -14434,25 +14434,25 @@ __metadata:
languageName: node
linkType: hard

"unrs-resolver@npm:^1.3.1":
version: 1.3.1
resolution: "unrs-resolver@npm:1.3.1"
dependencies:
"@unrs/resolver-binding-darwin-arm64": "npm:1.3.1"
"@unrs/resolver-binding-darwin-x64": "npm:1.3.1"
"@unrs/resolver-binding-freebsd-x64": "npm:1.3.1"
"@unrs/resolver-binding-linux-arm-gnueabihf": "npm:1.3.1"
"@unrs/resolver-binding-linux-arm-musleabihf": "npm:1.3.1"
"@unrs/resolver-binding-linux-arm64-gnu": "npm:1.3.1"
"@unrs/resolver-binding-linux-arm64-musl": "npm:1.3.1"
"@unrs/resolver-binding-linux-ppc64-gnu": "npm:1.3.1"
"@unrs/resolver-binding-linux-s390x-gnu": "npm:1.3.1"
"@unrs/resolver-binding-linux-x64-gnu": "npm:1.3.1"
"@unrs/resolver-binding-linux-x64-musl": "npm:1.3.1"
"@unrs/resolver-binding-wasm32-wasi": "npm:1.3.1"
"@unrs/resolver-binding-win32-arm64-msvc": "npm:1.3.1"
"@unrs/resolver-binding-win32-ia32-msvc": "npm:1.3.1"
"@unrs/resolver-binding-win32-x64-msvc": "npm:1.3.1"
"unrs-resolver@npm:^1.3.1, unrs-resolver@npm:^1.3.2":
version: 1.3.2
resolution: "unrs-resolver@npm:1.3.2"
dependencies:
"@unrs/resolver-binding-darwin-arm64": "npm:1.3.2"
"@unrs/resolver-binding-darwin-x64": "npm:1.3.2"
"@unrs/resolver-binding-freebsd-x64": "npm:1.3.2"
"@unrs/resolver-binding-linux-arm-gnueabihf": "npm:1.3.2"
"@unrs/resolver-binding-linux-arm-musleabihf": "npm:1.3.2"
"@unrs/resolver-binding-linux-arm64-gnu": "npm:1.3.2"
"@unrs/resolver-binding-linux-arm64-musl": "npm:1.3.2"
"@unrs/resolver-binding-linux-ppc64-gnu": "npm:1.3.2"
"@unrs/resolver-binding-linux-s390x-gnu": "npm:1.3.2"
"@unrs/resolver-binding-linux-x64-gnu": "npm:1.3.2"
"@unrs/resolver-binding-linux-x64-musl": "npm:1.3.2"
"@unrs/resolver-binding-wasm32-wasi": "npm:1.3.2"
"@unrs/resolver-binding-win32-arm64-msvc": "npm:1.3.2"
"@unrs/resolver-binding-win32-ia32-msvc": "npm:1.3.2"
"@unrs/resolver-binding-win32-x64-msvc": "npm:1.3.2"
dependenciesMeta:
"@unrs/resolver-binding-darwin-arm64":
optional: true
Expand Down Expand Up @@ -14484,7 +14484,7 @@ __metadata:
optional: true
"@unrs/resolver-binding-win32-x64-msvc":
optional: true
checksum: 10/0614246309fd0ac9ad89b36753e006ee3ec36decda97e9cbd88b28b90637a2799e2b12f83cae16d5d0b06a2f8134ffd6760622952f3b2a682cc2a28c7f9dbaaa
checksum: 10/13dbee27cc3288437a798338c54de4cb3b249e46ee97d3d4ac1976276e040b0e3c43594ce818a7e66f69241bf042ad47a3c2ad548358613125111c55b4ba5469
languageName: node
linkType: hard

Expand Down