Skip to content

Commit c11aa8a

Browse files
authored
Fix: Keep search in resolveReplacementExtensions (#1165)
* Fix: Keep search in resolveReplacementExtensions * Test: bypass import cache
1 parent a7aa0af commit c11aa8a

File tree

7 files changed

+27
-1
lines changed

7 files changed

+27
-1
lines changed

dist-raw/node-esm-resolve-implementation.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -307,7 +307,8 @@ function resolveReplacementExtensions(search) {
307307
const pathnameWithoutExtension = search.pathname.slice(0, search.pathname.length - 3);
308308
for (let i = 0; i < replacementExtensions.length; i++) {
309309
const extension = replacementExtensions[i];
310-
const guess = new URL(`${pathnameWithoutExtension}${extension}`, search);
310+
const guess = new URL(search.toString());
311+
guess.pathname = `${pathnameWithoutExtension}${extension}`;
311312
if (fileExists(guess)) return guess;
312313
}
313314
}

src/index.spec.ts

+9
Original file line numberDiff line numberDiff line change
@@ -932,6 +932,15 @@ describe('ts-node', function () {
932932
})
933933
})
934934

935+
it('should bypass import cache when changing search params', (done) => {
936+
exec(`${cmd} index.ts`, { cwd: join(__dirname, '../tests/esm-import-cache') }, function (err, stdout) {
937+
expect(err).to.equal(null)
938+
expect(stdout).to.equal('log1\nlog2\nlog2\n')
939+
940+
return done()
941+
})
942+
})
943+
935944
it('should support transpile only mode via dedicated loader entrypoint', (done) => {
936945
exec(`${cmd}/transpile-only index.ts`, { cwd: join(__dirname, '../tests/esm-transpile-only') }, function (err, stdout) {
937946
expect(err).to.equal(null)

tests/esm-import-cache/index.ts

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
import './log1.js'
2+
import './log1.js'
3+
import './log2.js'
4+
import './log2.js?bust'

tests/esm-import-cache/log1.ts

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
console.log('log1')

tests/esm-import-cache/log2.ts

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
console.log('log2')

tests/esm-import-cache/package.json

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"type": "module"
3+
}

tests/esm-import-cache/tsconfig.json

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"compilerOptions": {
3+
"module": "ESNext",
4+
"allowJs": true,
5+
"moduleResolution": "node"
6+
}
7+
}

0 commit comments

Comments
 (0)