diff --git a/ecmascript/transforms/typescript/src/strip.rs b/ecmascript/transforms/typescript/src/strip.rs index b2d51816800..4947e9b6a78 100644 --- a/ecmascript/transforms/typescript/src/strip.rs +++ b/ecmascript/transforms/typescript/src/strip.rs @@ -2158,7 +2158,9 @@ where } } - ModuleItem::ModuleDecl(ModuleDecl::TsExportAssignment(export)) => { + ModuleItem::ModuleDecl(ModuleDecl::TsExportAssignment(mut export)) => { + export.expr.visit_mut_with(self); + stmts.push(ModuleItem::Stmt(Stmt::Expr(ExprStmt { span: export.span, expr: Box::new(Expr::Assign(AssignExpr { diff --git a/ecmascript/transforms/typescript/tests/strip.rs b/ecmascript/transforms/typescript/tests/strip.rs index 532bd22202b..761eb09e462 100644 --- a/ecmascript/transforms/typescript/tests/strip.rs +++ b/ecmascript/transforms/typescript/tests/strip.rs @@ -4176,6 +4176,20 @@ test_with_config!( " ); +to!( + issue_2613, + " + export = function (foo: string, bar: number): boolean { + return true + }; + ", + " + module.exports = function (foo, bar) { + return true + }; + " +); + #[testing::fixture("tests/fixture/**/input.ts")] #[testing::fixture("tests/fixture/**/input.tsx")] fn exec(input: PathBuf) { diff --git a/tests/fixture/issue-2613/1/input/.swcrc b/tests/fixture/issue-2613/1/input/.swcrc new file mode 100644 index 00000000000..68afad7fa49 --- /dev/null +++ b/tests/fixture/issue-2613/1/input/.swcrc @@ -0,0 +1,10 @@ +{ + "jsc": { + "parser": { + "syntax": "typescript" + } + }, + "module": { + "type": "commonjs" + } +} \ No newline at end of file diff --git a/tests/fixture/issue-2613/1/input/index.ts b/tests/fixture/issue-2613/1/input/index.ts new file mode 100644 index 00000000000..56269d82f18 --- /dev/null +++ b/tests/fixture/issue-2613/1/input/index.ts @@ -0,0 +1,3 @@ +export = function (foo: string, bar: number): boolean { + return true +} \ No newline at end of file diff --git a/tests/fixture/issue-2613/1/output/index.ts b/tests/fixture/issue-2613/1/output/index.ts new file mode 100644 index 00000000000..ce456a9e988 --- /dev/null +++ b/tests/fixture/issue-2613/1/output/index.ts @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +module.exports = function(foo, bar) { + return true; +};