diff --git a/crates/swc/tests/fixture/interop/node/output/index.js b/crates/swc/tests/fixture/interop/node/output/index.js index e10d2e1c27db..5587c5405df0 100644 --- a/crates/swc/tests/fixture/interop/node/output/index.js +++ b/crates/swc/tests/fixture/interop/node/output/index.js @@ -2,7 +2,11 @@ Object.defineProperty(exports, "__esModule", { value: true }); -exports.default = exports.y = exports.x = void 0; +0 && (module.exports = { + x: _, + y: _, + default: _ +}); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, diff --git a/crates/swc_ecma_transforms_module/src/common_js.rs b/crates/swc_ecma_transforms_module/src/common_js.rs index 273d9b2bbc6d..7616fe501cbc 100644 --- a/crates/swc_ecma_transforms_module/src/common_js.rs +++ b/crates/swc_ecma_transforms_module/src/common_js.rs @@ -6,7 +6,7 @@ use swc_common::{ use swc_ecma_ast::*; use swc_ecma_transforms_base::{feature::FeatureFlag, helper_expr}; use swc_ecma_utils::{ - member_expr, private_ident, quote_ident, undefined, ExprFactory, FunctionFactory, IsDirective, + member_expr, private_ident, quote_ident, ExprFactory, FunctionFactory, IsDirective, }; use swc_ecma_visit::{as_folder, noop_visit_mut_type, Fold, VisitMut, VisitMutWith}; @@ -254,11 +254,18 @@ where is_export_assign: bool, ) -> impl Iterator { let import_interop = self.config.import_interop(); + let is_node = import_interop.is_node(); let mut stmts = Vec::with_capacity(link.len()); let mut export_obj_prop_list = export.into_iter().map(Into::into).collect(); + let lexer_reexport = if is_node { + self.emit_lexer_ts_reexport(&link) + } else { + None + }; + link.into_iter().for_each( |(src, LinkItem(src_span, link_specifier_set, mut link_flag))| { // Optimize for `@swc/helpers`: @@ -277,7 +284,7 @@ where let is_swc_default_helper = !link_flag.has_named() && src.starts_with("@swc/helpers/"); - let is_node_default = !link_flag.has_named() && import_interop.is_node(); + let is_node_default = !link_flag.has_named() && is_node; if import_interop.is_none() || is_swc_default_helper { link_flag -= LinkFlag::NAMESPACE; @@ -371,16 +378,24 @@ where if !export_obj_prop_list.is_empty() && !is_export_assign { export_obj_prop_list.sort_by_key(|prop| prop.span()); - if import_interop.is_node() { - export_stmts = self.emit_lexer_exports_init(&export_obj_prop_list); - } - - let features = self.available_features; + let mut features = self.available_features; let exports = self.exports(); + if is_node { + if export_obj_prop_list.len() > 1 { + export_stmts.extend(self.emit_lexer_exports_init(&export_obj_prop_list)); + } else { + // `cjs-module-lexer` does not support `get: ()=> foo` + // see https://github.com/nodejs/cjs-module-lexer/pull/74 + features -= FeatureFlag::ArrowFunctions; + } + } + export_stmts.extend(emit_export_stmts(features, exports, export_obj_prop_list)); } + export_stmts.extend(lexer_reexport); + export_stmts.into_iter().chain(stmts) } @@ -445,29 +460,104 @@ where /// emit [cjs-module-lexer](https://github.com/nodejs/cjs-module-lexer) friendly exports list /// ```javascript - /// exports.foo = exports.bar = void 0; + /// 0 && (exports.foo = 0); + /// 0 && (module.exports = { foo: _, bar: _ }); /// ``` - fn emit_lexer_exports_init(&mut self, export_id_list: &[ObjPropKeyIdent]) -> Vec { - export_id_list - .chunks(100) - .map(|group| { - let mut expr = *undefined(DUMMY_SP); - - for key_value in group { - let prop = prop_name(key_value.key(), DUMMY_SP).into(); - - let export_binding = MemberExpr { - obj: Box::new(self.exports().into()), - span: key_value.span(), - prop, - }; + fn emit_lexer_exports_init(&mut self, export_id_list: &[ObjPropKeyIdent]) -> Option { + match export_id_list.len() { + 0 => None, + 1 => { + let expr: Expr = 0.into(); + + let key_value = &export_id_list[0]; + let prop = prop_name(key_value.key(), DUMMY_SP).into(); + let export_binding = MemberExpr { + obj: Box::new(self.exports().into()), + span: key_value.span(), + prop, + }; + let expr = expr.make_assign_to(op!("="), export_binding.as_pat_or_expr()); + let expr = BinExpr { + span: DUMMY_SP, + op: op!("&&"), + left: 0.into(), + right: Box::new(expr), + }; - expr = expr.make_assign_to(op!("="), export_binding.as_pat_or_expr()); + Some(expr.into_stmt()) + } + _ => { + let props = export_id_list + .iter() + .map(|key_value| prop_name(key_value.key(), DUMMY_SP)) + .map(|key| KeyValueProp { + key: key.into(), + // `cjs-module-lexer` only support identifier as value + value: quote_ident!("_").into(), + }) + .map(Prop::KeyValue) + .map(Box::new) + .map(PropOrSpread::Prop) + .collect(); + + let module_exports_assign = ObjectLit { + span: DUMMY_SP, + props, } + .make_assign_to( + op!("="), + member_expr!(DUMMY_SP.apply_mark(self.unresolved_mark), module.exports).into(), + ); - expr.into_stmt() - }) - .collect() + let expr = BinExpr { + span: DUMMY_SP, + op: op!("&&"), + left: 0.into(), + right: Box::new(module_exports_assign), + }; + + Some(expr.into_stmt()) + } + } + } + + /// emit [cjs-module-lexer](https://github.com/nodejs/cjs-module-lexer) friendly exports list + /// ```javascript + /// 0 && (__export(require("foo"))); + /// ``` + fn emit_lexer_ts_reexport(&self, link: &Link) -> Option { + let mut seq_list = vec![]; + link.iter().for_each(|(src, LinkItem(_, _, link_flag))| { + if link_flag.export_star() { + let import_expr = + self.resolver + .make_require_call(self.unresolved_mark, src.clone(), DUMMY_SP); + + let export = Expr::Ident(quote_ident!("__export")) + .as_call(DUMMY_SP, vec![import_expr.as_arg()]); + + seq_list.push(Box::new(export)); + } + }); + + if seq_list.is_empty() { + None + } else { + let seq_expr = SeqExpr { + span: DUMMY_SP, + exprs: seq_list, + } + .into(); + + let expr = BinExpr { + span: DUMMY_SP, + op: op!("&&"), + left: 0.into(), + right: seq_expr, + }; + + Some(expr.into_stmt()) + } } fn pure_span(&self) -> Span { diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-all/output.cjs b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-all/output.cjs index 70d1120da757..1649b5240c62 100644 --- a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-all/output.cjs +++ b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-all/output.cjs @@ -5,10 +5,12 @@ Object.defineProperty(exports, "__esModule", { value: true }); -exports.default = void 0; Object.defineProperty(exports, "default", { enumerable: true, - get: ()=>_default + get () { + return _default; + } }); +0 && __export(require("react")); const _react = _exportStar(require("react"), exports); const _default = _react; diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-default-10/output.cjs b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-default-10/output.cjs index f1f7d9318cd9..5a5d41fd3c8e 100644 --- a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-default-10/output.cjs +++ b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-default-10/output.cjs @@ -2,10 +2,11 @@ Object.defineProperty(exports, "__esModule", { value: true }); -exports.default = void 0; Object.defineProperty(exports, "default", { enumerable: true, - get: ()=>_default + get () { + return _default; + } }); const _default = function() { return "foo"; diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-default-11/output.cjs b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-default-11/output.cjs index 12d9c72b19d1..4ca29e282f89 100644 --- a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-default-11/output.cjs +++ b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-default-11/output.cjs @@ -2,7 +2,10 @@ Object.defineProperty(exports, "__esModule", { value: true }); -exports.Cachier = exports.default = void 0; +0 && (module.exports = { + default: _, + Cachier: _ +}); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-default-2/output.cjs b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-default-2/output.cjs index 16c9a5afbe4a..ab17d5a01a83 100644 --- a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-default-2/output.cjs +++ b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-default-2/output.cjs @@ -2,9 +2,10 @@ Object.defineProperty(exports, "__esModule", { value: true }); -exports.default = void 0; Object.defineProperty(exports, "default", { enumerable: true, - get: ()=>_default + get () { + return _default; + } }); const _default = {}; diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-default-3/output.cjs b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-default-3/output.cjs index bc0b9b09ec32..4c1e00c5f96b 100644 --- a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-default-3/output.cjs +++ b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-default-3/output.cjs @@ -2,9 +2,10 @@ Object.defineProperty(exports, "__esModule", { value: true }); -exports.default = void 0; Object.defineProperty(exports, "default", { enumerable: true, - get: ()=>_default + get () { + return _default; + } }); const _default = []; diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-default-4/output.cjs b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-default-4/output.cjs index 32ad435794e7..da6e4e7f9f23 100644 --- a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-default-4/output.cjs +++ b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-default-4/output.cjs @@ -2,9 +2,10 @@ Object.defineProperty(exports, "__esModule", { value: true }); -exports.default = void 0; Object.defineProperty(exports, "default", { enumerable: true, - get: ()=>_default + get () { + return _default; + } }); const _default = foo; diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-default-5/output.cjs b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-default-5/output.cjs index 4a7bd6f0af52..64dbfe30c6e3 100644 --- a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-default-5/output.cjs +++ b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-default-5/output.cjs @@ -2,9 +2,10 @@ Object.defineProperty(exports, "__esModule", { value: true }); -exports.default = void 0; Object.defineProperty(exports, "default", { enumerable: true, - get: ()=>_default + get () { + return _default; + } }); function _default() {} diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-default-6/output.cjs b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-default-6/output.cjs index ce786a05e3a5..d839e66498c6 100644 --- a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-default-6/output.cjs +++ b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-default-6/output.cjs @@ -2,10 +2,11 @@ Object.defineProperty(exports, "__esModule", { value: true }); -exports.default = void 0; Object.defineProperty(exports, "default", { enumerable: true, - get: ()=>_default + get () { + return _default; + } }); class _default { } diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-default-7/output.cjs b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-default-7/output.cjs index 15fc9185efe7..8109d85489df 100644 --- a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-default-7/output.cjs +++ b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-default-7/output.cjs @@ -2,9 +2,10 @@ Object.defineProperty(exports, "__esModule", { value: true }); -exports.default = void 0; Object.defineProperty(exports, "default", { enumerable: true, - get: ()=>foo + get () { + return foo; + } }); function foo() {} diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-default-8/output.cjs b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-default-8/output.cjs index 6f49ea5d0bc4..c41ae1f6a637 100644 --- a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-default-8/output.cjs +++ b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-default-8/output.cjs @@ -2,10 +2,11 @@ Object.defineProperty(exports, "__esModule", { value: true }); -exports.default = void 0; Object.defineProperty(exports, "default", { enumerable: true, - get: ()=>Foo + get () { + return Foo; + } }); class Foo { } diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-default-9/output.cjs b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-default-9/output.cjs index 7e2e6f47e31c..248cfb3e7d2b 100644 --- a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-default-9/output.cjs +++ b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-default-9/output.cjs @@ -2,9 +2,10 @@ Object.defineProperty(exports, "__esModule", { value: true }); -exports.default = void 0; Object.defineProperty(exports, "default", { enumerable: true, - get: ()=>foo + get () { + return foo; + } }); var foo; diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-default/output.cjs b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-default/output.cjs index dd638e00aab5..bb32545633f0 100644 --- a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-default/output.cjs +++ b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-default/output.cjs @@ -2,9 +2,10 @@ Object.defineProperty(exports, "__esModule", { value: true }); -exports.default = void 0; Object.defineProperty(exports, "default", { enumerable: true, - get: ()=>_default + get () { + return _default; + } }); const _default = 42; diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-destructured/output.cjs b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-destructured/output.cjs index 934b207088ff..7b226cf6fbbc 100644 --- a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-destructured/output.cjs +++ b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-destructured/output.cjs @@ -2,7 +2,14 @@ Object.defineProperty(exports, "__esModule", { value: true }); -exports.f4 = exports.f3 = exports.f2 = exports.f1 = exports.y = exports.x = void 0; +0 && (module.exports = { + x: _, + y: _, + f1: _, + f2: _, + f3: _, + f4: _ +}); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-from-1/output.cjs b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-from-1/output.cjs index 59c1df1a18a4..a0e49f4495c2 100644 --- a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-from-1/output.cjs +++ b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-from-1/output.cjs @@ -2,4 +2,5 @@ Object.defineProperty(exports, "__esModule", { value: true }); +0 && __export(require("foo")); _exportStar(require("foo"), exports); diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-from-2/output.cjs b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-from-2/output.cjs index d93bc6114ba0..f26014cea6f9 100644 --- a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-from-2/output.cjs +++ b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-from-2/output.cjs @@ -2,9 +2,10 @@ Object.defineProperty(exports, "__esModule", { value: true }); -exports.foo = void 0; Object.defineProperty(exports, "foo", { enumerable: true, - get: ()=>_foo.foo + get () { + return _foo.foo; + } }); const _foo = require("foo"); diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-from-3/output.cjs b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-from-3/output.cjs index aa8e9fa6b1a2..86eee6eee6f8 100644 --- a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-from-3/output.cjs +++ b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-from-3/output.cjs @@ -2,7 +2,10 @@ Object.defineProperty(exports, "__esModule", { value: true }); -exports.foo = exports.bar = void 0; +0 && (module.exports = { + bar: _, + foo: _ +}); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-from-4/output.cjs b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-from-4/output.cjs index bb855ec0266e..5219f7f1c835 100644 --- a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-from-4/output.cjs +++ b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-from-4/output.cjs @@ -2,9 +2,10 @@ Object.defineProperty(exports, "__esModule", { value: true }); -exports.bar = void 0; Object.defineProperty(exports, "bar", { enumerable: true, - get: ()=>_foo.foo + get () { + return _foo.foo; + } }); const _foo = require("foo"); diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-from-5/output.cjs b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-from-5/output.cjs index 08268b27e64c..781f027ce6e1 100644 --- a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-from-5/output.cjs +++ b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-from-5/output.cjs @@ -2,9 +2,10 @@ Object.defineProperty(exports, "__esModule", { value: true }); -exports.default = void 0; Object.defineProperty(exports, "default", { enumerable: true, - get: ()=>_foo.foo + get () { + return _foo.foo; + } }); const _foo = require("foo"); diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-from-6/output.cjs b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-from-6/output.cjs index 12625854dbed..5602f39fa0a7 100644 --- a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-from-6/output.cjs +++ b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-from-6/output.cjs @@ -2,7 +2,10 @@ Object.defineProperty(exports, "__esModule", { value: true }); -exports.default = exports.bar = void 0; +0 && (module.exports = { + bar: _, + default: _ +}); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-from-7/output.cjs b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-from-7/output.cjs index 82446cc02be1..ba53e2b37dac 100644 --- a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-from-7/output.cjs +++ b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-from-7/output.cjs @@ -2,9 +2,10 @@ Object.defineProperty(exports, "__esModule", { value: true }); -exports.foo = void 0; Object.defineProperty(exports, "foo", { enumerable: true, - get: ()=>_foo.default + get () { + return _foo.default; + } }); const _foo = require("foo"); diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-from-8/output.cjs b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-from-8/output.cjs index 04ae0c921c04..71a9453a31a6 100644 --- a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-from-8/output.cjs +++ b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-from-8/output.cjs @@ -2,8 +2,109 @@ Object.defineProperty(exports, "__esModule", { value: true }); -exports.foo98 = exports.foo97 = exports.foo96 = exports.foo95 = exports.foo94 = exports.foo93 = exports.foo92 = exports.foo91 = exports.foo90 = exports.foo9 = exports.foo89 = exports.foo88 = exports.foo87 = exports.foo86 = exports.foo85 = exports.foo84 = exports.foo83 = exports.foo82 = exports.foo81 = exports.foo80 = exports.foo8 = exports.foo79 = exports.foo78 = exports.foo77 = exports.foo76 = exports.foo75 = exports.foo74 = exports.foo73 = exports.foo72 = exports.foo71 = exports.foo70 = exports.foo7 = exports.foo69 = exports.foo68 = exports.foo67 = exports.foo66 = exports.foo65 = exports.foo64 = exports.foo63 = exports.foo62 = exports.foo61 = exports.foo60 = exports.foo6 = exports.foo59 = exports.foo58 = exports.foo57 = exports.foo56 = exports.foo55 = exports.foo54 = exports.foo53 = exports.foo52 = exports.foo51 = exports.foo50 = exports.foo5 = exports.foo49 = exports.foo48 = exports.foo47 = exports.foo46 = exports.foo45 = exports.foo44 = exports.foo43 = exports.foo42 = exports.foo41 = exports.foo40 = exports.foo4 = exports.foo39 = exports.foo38 = exports.foo37 = exports.foo36 = exports.foo35 = exports.foo34 = exports.foo33 = exports.foo32 = exports.foo31 = exports.foo30 = exports.foo3 = exports.foo29 = exports.foo28 = exports.foo27 = exports.foo26 = exports.foo25 = exports.foo24 = exports.foo23 = exports.foo22 = exports.foo21 = exports.foo20 = exports.foo2 = exports.foo19 = exports.foo18 = exports.foo17 = exports.foo16 = exports.foo15 = exports.foo14 = exports.foo13 = exports.foo12 = exports.foo11 = exports.foo100 = exports.foo10 = exports.foo1 = exports.foo = void 0; -exports.foo99 = void 0; +0 && (module.exports = { + foo: _, + foo1: _, + foo10: _, + foo100: _, + foo11: _, + foo12: _, + foo13: _, + foo14: _, + foo15: _, + foo16: _, + foo17: _, + foo18: _, + foo19: _, + foo2: _, + foo20: _, + foo21: _, + foo22: _, + foo23: _, + foo24: _, + foo25: _, + foo26: _, + foo27: _, + foo28: _, + foo29: _, + foo3: _, + foo30: _, + foo31: _, + foo32: _, + foo33: _, + foo34: _, + foo35: _, + foo36: _, + foo37: _, + foo38: _, + foo39: _, + foo4: _, + foo40: _, + foo41: _, + foo42: _, + foo43: _, + foo44: _, + foo45: _, + foo46: _, + foo47: _, + foo48: _, + foo49: _, + foo5: _, + foo50: _, + foo51: _, + foo52: _, + foo53: _, + foo54: _, + foo55: _, + foo56: _, + foo57: _, + foo58: _, + foo59: _, + foo6: _, + foo60: _, + foo61: _, + foo62: _, + foo63: _, + foo64: _, + foo65: _, + foo66: _, + foo67: _, + foo68: _, + foo69: _, + foo7: _, + foo70: _, + foo71: _, + foo72: _, + foo73: _, + foo74: _, + foo75: _, + foo76: _, + foo77: _, + foo78: _, + foo79: _, + foo8: _, + foo80: _, + foo81: _, + foo82: _, + foo83: _, + foo84: _, + foo85: _, + foo86: _, + foo87: _, + foo88: _, + foo89: _, + foo9: _, + foo90: _, + foo91: _, + foo92: _, + foo93: _, + foo94: _, + foo95: _, + foo96: _, + foo97: _, + foo98: _, + foo99: _ +}); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-named-1/output.cjs b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-named-1/output.cjs index e4bf4982d21e..c99bb4f53b14 100644 --- a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-named-1/output.cjs +++ b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-named-1/output.cjs @@ -2,9 +2,10 @@ Object.defineProperty(exports, "__esModule", { value: true }); -exports.foo = void 0; Object.defineProperty(exports, "foo", { enumerable: true, - get: ()=>foo + get () { + return foo; + } }); var foo; diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-named-2/output.cjs b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-named-2/output.cjs index a88965175a26..886de54f8a27 100644 --- a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-named-2/output.cjs +++ b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-named-2/output.cjs @@ -2,7 +2,10 @@ Object.defineProperty(exports, "__esModule", { value: true }); -exports.foo = exports.bar = void 0; +0 && (module.exports = { + bar: _, + foo: _ +}); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-named-3/output.cjs b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-named-3/output.cjs index ebe74ff334ec..655d447cc89b 100644 --- a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-named-3/output.cjs +++ b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-named-3/output.cjs @@ -2,9 +2,10 @@ Object.defineProperty(exports, "__esModule", { value: true }); -exports.bar = void 0; Object.defineProperty(exports, "bar", { enumerable: true, - get: ()=>foo + get () { + return foo; + } }); var foo; diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-named-4/output.cjs b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-named-4/output.cjs index 7e2e6f47e31c..248cfb3e7d2b 100644 --- a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-named-4/output.cjs +++ b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-named-4/output.cjs @@ -2,9 +2,10 @@ Object.defineProperty(exports, "__esModule", { value: true }); -exports.default = void 0; Object.defineProperty(exports, "default", { enumerable: true, - get: ()=>foo + get () { + return foo; + } }); var foo; diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-named-5/output.cjs b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-named-5/output.cjs index 1b147e02a121..3b91939cae22 100644 --- a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-named-5/output.cjs +++ b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/export-named-5/output.cjs @@ -2,7 +2,10 @@ Object.defineProperty(exports, "__esModule", { value: true }); -exports.default = exports.bar = void 0; +0 && (module.exports = { + bar: _, + default: _ +}); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/exports-variable/output.cjs b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/exports-variable/output.cjs index 647bca49219c..fcc5314e510c 100644 --- a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/exports-variable/output.cjs +++ b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/exports-variable/output.cjs @@ -2,7 +2,18 @@ Object.defineProperty(exports, "__esModule", { value: true }); -exports.foo9 = exports.foo8 = exports.foo7 = exports.foo6 = exports.foo5 = exports.foo4 = exports.foo3 = exports.bar = exports.foo2 = exports.foo = void 0; +0 && (module.exports = { + foo: _, + foo2: _, + bar: _, + foo3: _, + foo4: _, + foo5: _, + foo6: _, + foo7: _, + foo8: _, + foo9: _ +}); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/hoist-function-exports/output.cjs b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/hoist-function-exports/output.cjs index 433e0cff83a4..a5f623ced0b6 100644 --- a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/hoist-function-exports/output.cjs +++ b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/hoist-function-exports/output.cjs @@ -2,7 +2,10 @@ Object.defineProperty(exports, "__esModule", { value: true }); -exports.isOdd = exports.nextOdd = void 0; +0 && (module.exports = { + nextOdd: _, + isOdd: _ +}); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/overview/output.cjs b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/overview/output.cjs index 1ac3a213140a..b5dc4d1aa416 100644 --- a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/overview/output.cjs +++ b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/overview/output.cjs @@ -2,7 +2,10 @@ Object.defineProperty(exports, "__esModule", { value: true }); -exports.test2 = exports.test = void 0; +0 && (module.exports = { + test: _, + test2: _ +}); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/remap/output.cjs b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/remap/output.cjs index 7667c3454c60..120b397f4b9f 100644 --- a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/remap/output.cjs +++ b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/remap/output.cjs @@ -2,7 +2,13 @@ Object.defineProperty(exports, "__esModule", { value: true }); -exports.f = exports.e = exports.c = exports.a = exports.test = void 0; +0 && (module.exports = { + test: _, + a: _, + c: _, + e: _, + f: _ +}); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true,