Fixed rewriteRelativeImportExtensions for import() within call expressions (#61154)

This commit is contained in:
Mateusz Burzyński 2025-02-11 00:02:37 +01:00 committed by GitHub
parent 775412a81a
commit df342b7206
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 36 additions and 3 deletions

View File

@ -158,7 +158,7 @@ export function transformECMAScriptModule(context: TransformationContext): (x: S
if (node === importsAndRequiresToRewriteOrShim?.[0]) {
return visitImportOrRequireCall(importsAndRequiresToRewriteOrShim.shift()!);
}
break;
// fallthrough
default:
if (importsAndRequiresToRewriteOrShim?.length && rangeContainsRange(node, importsAndRequiresToRewriteOrShim[0])) {
return visitEachChild(node, visitor, context);

View File

@ -6,6 +6,8 @@ main.ts(6,22): error TS2307: Cannot find module './foo.ts' or its corresponding
main.ts(8,15): error TS2307: Cannot find module './foo.ts' or its corresponding type declarations.
main.ts(10,8): error TS2307: Cannot find module './foo.ts' or its corresponding type declarations.
main.ts(11,8): error TS2307: Cannot find module './foo.ts' or its corresponding type declarations.
main.ts(13,18): error TS2307: Cannot find module './foo.ts' or its corresponding type declarations.
main.ts(14,8): error TS2307: Cannot find module './foo.ts' or its corresponding type declarations.
no.ts(1,16): error TS2307: Cannot find module './foo.ts/foo.js' or its corresponding type declarations.
no.ts(2,16): error TS2307: Cannot find module 'foo.ts' or its corresponding type declarations.
no.ts(3,16): error TS2307: Cannot find module 'pkg/foo.ts' or its corresponding type declarations.
@ -21,7 +23,7 @@ no.ts(11,8): error TS2307: Cannot find module 'node:path' or its corresponding t
==== globals.d.ts (0 errors) ====
declare function require(module: string): any;
==== main.ts (8 errors) ====
==== main.ts (10 errors) ====
// Rewrite
import {} from "./foo.ts";
~~~~~~~~~~
@ -45,6 +47,13 @@ no.ts(11,8): error TS2307: Cannot find module 'node:path' or its corresponding t
//Shim
import("./foo.ts");
~~~~~~~~~~
!!! error TS2307: Cannot find module './foo.ts' or its corresponding type declarations.
import("./foo.ts").then(() => {});
~~~~~~~~~~
!!! error TS2307: Cannot find module './foo.ts' or its corresponding type declarations.
function acceptAny(arg: any) {}
acceptAny(import("./foo.ts"));
~~~~~~~~~~
!!! error TS2307: Cannot find module './foo.ts' or its corresponding type declarations.
import("./foo.ts", { with: { attr: "value" } });
~~~~~~~~~~

View File

@ -14,6 +14,9 @@ import "./foo.ts";
export * from "./foo.ts";
//Shim
import("./foo.ts");
import("./foo.ts").then(() => {});
function acceptAny(arg: any) {}
acceptAny(import("./foo.ts"));
import("./foo.ts", { with: { attr: "value" } });
import("" + "./foo.ts");
//// [js.js]
@ -71,6 +74,9 @@ import "./foo.js";
export * from "./foo.js";
//Shim
import("./foo.js");
import("./foo.js").then(() => { });
function acceptAny(arg) { }
acceptAny(import("./foo.js"));
import("./foo.js", { with: { attr: "value" } });
import(__rewriteRelativeImportExtension("" + "./foo.ts", true));
//// [js.js]

View File

@ -6,6 +6,8 @@ main.ts(6,22): error TS2307: Cannot find module './foo.ts' or its corresponding
main.ts(8,15): error TS2307: Cannot find module './foo.ts' or its corresponding type declarations.
main.ts(10,8): error TS2307: Cannot find module './foo.ts' or its corresponding type declarations.
main.ts(11,8): error TS2307: Cannot find module './foo.ts' or its corresponding type declarations.
main.ts(13,18): error TS2307: Cannot find module './foo.ts' or its corresponding type declarations.
main.ts(14,8): error TS2307: Cannot find module './foo.ts' or its corresponding type declarations.
no.ts(1,16): error TS2307: Cannot find module './foo.ts/foo.js' or its corresponding type declarations.
no.ts(2,16): error TS2307: Cannot find module 'foo.ts' or its corresponding type declarations.
no.ts(3,16): error TS2307: Cannot find module 'pkg/foo.ts' or its corresponding type declarations.
@ -21,7 +23,7 @@ no.ts(11,8): error TS2307: Cannot find module 'node:path' or its corresponding t
==== globals.d.ts (0 errors) ====
declare function require(module: string): any;
==== main.ts (8 errors) ====
==== main.ts (10 errors) ====
// Rewrite
import {} from "./foo.ts";
~~~~~~~~~~
@ -45,6 +47,13 @@ no.ts(11,8): error TS2307: Cannot find module 'node:path' or its corresponding t
//Shim
import("./foo.ts");
~~~~~~~~~~
!!! error TS2307: Cannot find module './foo.ts' or its corresponding type declarations.
import("./foo.ts").then(() => {});
~~~~~~~~~~
!!! error TS2307: Cannot find module './foo.ts' or its corresponding type declarations.
function acceptAny(arg: any) {}
acceptAny(import("./foo.ts"));
~~~~~~~~~~
!!! error TS2307: Cannot find module './foo.ts' or its corresponding type declarations.
import("./foo.ts", { with: { attr: "value" } });
~~~~~~~~~~

View File

@ -14,6 +14,9 @@ import "./foo.ts";
export * from "./foo.ts";
//Shim
import("./foo.ts");
import("./foo.ts").then(() => {});
function acceptAny(arg: any) {}
acceptAny(import("./foo.ts"));
import("./foo.ts", { with: { attr: "value" } });
import("" + "./foo.ts");
//// [js.js]
@ -71,6 +74,9 @@ import "./foo.js";
export * from "./foo.js";
//Shim
import("./foo.js");
import("./foo.js").then(() => { });
function acceptAny(arg) { }
acceptAny(import("./foo.js"));
import("./foo.js", { with: { attr: "value" } });
import(__rewriteRelativeImportExtension("" + "./foo.ts"));
//// [js.js]

View File

@ -21,6 +21,9 @@ import "./foo.ts";
export * from "./foo.ts";
//Shim
import("./foo.ts");
import("./foo.ts").then(() => {});
function acceptAny(arg: any) {}
acceptAny(import("./foo.ts"));
import("./foo.ts", { with: { attr: "value" } });
import("" + "./foo.ts");
// @Filename: js.js