diff --git a/.changeset/quiet-moons-sell.md b/.changeset/quiet-moons-sell.md new file mode 100644 index 0000000..f3a652d --- /dev/null +++ b/.changeset/quiet-moons-sell.md @@ -0,0 +1,5 @@ +--- +"eslint-import-resolver-typescript": patch +--- + +fix: absolute path aliasing should not be skipped diff --git a/package.json b/package.json index bd2d150..7b6f45b 100644 --- a/package.json +++ b/package.json @@ -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\"", @@ -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", diff --git a/src/index.ts b/src/index.ts index 7c47cd0..56ff51f 100644 --- a/src/index.ts +++ b/src/index.ts @@ -33,7 +33,7 @@ const tsconfigCache = new Map() const matcherCache = new Map() -const oxcResolve = ( +const unrsResolve = ( source: string, file: string, resolver: ResolverFactory, @@ -157,7 +157,7 @@ export const resolve = ( } } - const resolved = oxcResolve(source, file, resolver) + const resolved = unrsResolve(source, file, resolver) const foundPath = resolved.path @@ -170,7 +170,7 @@ export const resolve = ( !path.isAbsolute(source) && !source.startsWith('.') ) { - const definitelyTyped = oxcResolve( + const definitelyTyped = unrsResolve( '@types/' + mangleScopedPackage(source), file, resolver, diff --git a/src/normalize-options.ts b/src/normalize-options.ts index 7511ce2..ba675eb 100644 --- a/src/normalize-options.ts +++ b/src/normalize-options.ts @@ -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, diff --git a/tests/absoluteAlias/.eslintrc.cjs b/tests/absoluteAlias/.eslintrc.cjs new file mode 100644 index 0000000..3d3a72f --- /dev/null +++ b/tests/absoluteAlias/.eslintrc.cjs @@ -0,0 +1 @@ +module.exports = require('../base.eslintrc.cjs')(__dirname) diff --git a/tests/absoluteAlias/public/images/foo.ts b/tests/absoluteAlias/public/images/foo.ts new file mode 100644 index 0000000..e13bf6d --- /dev/null +++ b/tests/absoluteAlias/public/images/foo.ts @@ -0,0 +1 @@ +export default 'image.webp' diff --git a/tests/absoluteAlias/test.ts b/tests/absoluteAlias/test.ts new file mode 100644 index 0000000..6358e50 --- /dev/null +++ b/tests/absoluteAlias/test.ts @@ -0,0 +1,3 @@ +import image from '/images/foo.js' + +console.log(image) diff --git a/tests/absoluteAlias/tsconfig.json b/tests/absoluteAlias/tsconfig.json new file mode 100644 index 0000000..130457a --- /dev/null +++ b/tests/absoluteAlias/tsconfig.json @@ -0,0 +1,7 @@ +{ + "compilerOptions": { + "paths": { + "/*": ["./public/*"] + } + } +} diff --git a/tests/base.eslintrc.cjs b/tests/base.eslintrc.cjs index f0c7501..f58b61f 100644 --- a/tests/base.eslintrc.cjs +++ b/tests/base.eslintrc.cjs @@ -38,6 +38,9 @@ const base = project => ({ overrides: [ { files: '**/.*.cjs', + env: { + node: true, + }, rules: { '@typescript-eslint/no-require-imports': 'off', }, diff --git a/yarn.lock b/yarn.lock index 94f62de..07a0abf 100644 --- a/yarn.lock +++ b/yarn.lock @@ -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 @@ -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: @@ -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 @@ -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