From b2cc7de121e227896f3276b2b03d3ac8826bac82 Mon Sep 17 00:00:00 2001
From: Pierre-Marie Dartus
Date: Wed, 4 Mar 2020 11:01:13 +0100
Subject: [PATCH] fix(compiler): force rollup to use named exports
---
.../fixtures/expected-minify-no-comments.js | 2 +-
.../src/__tests__/fixtures/expected-prod-mode.js | 2 +-
.../__tests__/fixtures/expected-prod_compat-mode.js | 2 +-
packages/@lwc/compiler/src/bundler/bundler.ts | 12 ++++++++++--
.../rollup-plugins/__tests__/module-resolver.spec.ts | 10 ++++++----
5 files changed, 19 insertions(+), 9 deletions(-)
diff --git a/packages/@lwc/compiler/src/__tests__/fixtures/expected-minify-no-comments.js b/packages/@lwc/compiler/src/__tests__/fixtures/expected-minify-no-comments.js
index 3101dfd3a4..2b89ce151e 100644
--- a/packages/@lwc/compiler/src/__tests__/fixtures/expected-minify-no-comments.js
+++ b/packages/@lwc/compiler/src/__tests__/fixtures/expected-minify-no-comments.js
@@ -1 +1 @@
-define("x/comments",["lwc"],function(e){var t=[function(e,t,s){return[s?":host{color:#00f}":[e,"{color:#00f}"].join(""),"x-comments",t,"{color:green}"].join("")}];function s(e,t,s,n){const{d:o,h:r}=e;return[r("h1",{key:0},[o(t.myname)])]}var n=e.registerTemplate(s);s.stylesheets=[],t&&s.stylesheets.push.apply(s.stylesheets,t),s.stylesheetTokens={hostAttribute:"x-comments_comments-host",shadowAttribute:"x-comments_comments"};class o extends e.LightningElement{constructor(...e){super(...e),this.myname="default value"}}return e.registerDecorators(o,{track:{myname:1}}),e.registerComponent(o,{tmpl:n})});
\ No newline at end of file
+define("x/comments",["exports","lwc"],function(e,t){var s=[function(e,t,s){return[s?":host{color:#00f}":[e,"{color:#00f}"].join(""),"x-comments",t,"{color:green}"].join("")}];function o(e,t,s,o){const{d:n,h:r}=e;return[r("h1",{key:0},[n(t.myname)])]}var n=t.registerTemplate(o);o.stylesheets=[],s&&o.stylesheets.push.apply(o.stylesheets,s),o.stylesheetTokens={hostAttribute:"x-comments_comments-host",shadowAttribute:"x-comments_comments"};class r extends t.LightningElement{constructor(...e){super(...e),this.myname="default value"}}t.registerDecorators(r,{track:{myname:1}});var m=t.registerComponent(r,{tmpl:n});e.default=m,Object.defineProperty(e,"__esModule",{value:!0})});
diff --git a/packages/@lwc/compiler/src/__tests__/fixtures/expected-prod-mode.js b/packages/@lwc/compiler/src/__tests__/fixtures/expected-prod-mode.js
index 75aef0637a..d8275df7c0 100755
--- a/packages/@lwc/compiler/src/__tests__/fixtures/expected-prod-mode.js
+++ b/packages/@lwc/compiler/src/__tests__/fixtures/expected-prod-mode.js
@@ -1 +1 @@
-define("x/class_and_template",["lwc"],function(t){function e(t,e,s,n){const{h:a}=t;return[a("section",{key:0},[])]}var s=t.registerTemplate(e);e.stylesheets=[],e.stylesheetTokens={hostAttribute:"x-class_and_template_class_and_template-host",shadowAttribute:"x-class_and_template_class_and_template"};class n extends t.LightningElement{constructor(){super(),this.t=1,this.counter=0}}return t.registerDecorators(n,{fields:["t"]}),t.registerComponent(n,{tmpl:s})});
\ No newline at end of file
+define("x/class_and_template",["exports","lwc"],function(e,t){function s(e,t,s,a){const{h:n}=e;return[n("section",{key:0},[])]}var a=t.registerTemplate(s);s.stylesheets=[],s.stylesheetTokens={hostAttribute:"x-class_and_template_class_and_template-host",shadowAttribute:"x-class_and_template_class_and_template"};class n extends t.LightningElement{constructor(){super(),this.t=1,this.counter=0}}t.registerDecorators(n,{fields:["t"]});var l=t.registerComponent(n,{tmpl:a});e.default=l,Object.defineProperty(e,"__esModule",{value:!0})});
\ No newline at end of file
diff --git a/packages/@lwc/compiler/src/__tests__/fixtures/expected-prod_compat-mode.js b/packages/@lwc/compiler/src/__tests__/fixtures/expected-prod_compat-mode.js
index d46e3be845..9a7b1dc60b 100755
--- a/packages/@lwc/compiler/src/__tests__/fixtures/expected-prod_compat-mode.js
+++ b/packages/@lwc/compiler/src/__tests__/fixtures/expected-prod_compat-mode.js
@@ -1 +1 @@
-define("x/node_env",["proxy-compat/callKey2","proxy-compat/callKey1","@babel/runtime/helpers/classCallCheck","@babel/runtime/helpers/createClass","@babel/runtime/helpers/possibleConstructorReturn","@babel/runtime/helpers/getPrototypeOf","@babel/runtime/helpers/inherits","proxy-compat/setKey","@babel/runtime/helpers/objectDestructuringEmpty","lwc"],function(e,t,r,l,o,a,n,p,s,u){function c(e,t,r,l){return s(e),[]}e=e&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e,t=t&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t,r=r&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r,l=l&&Object.prototype.hasOwnProperty.call(l,"default")?l.default:l,o=o&&Object.prototype.hasOwnProperty.call(o,"default")?o.default:o,a=a&&Object.prototype.hasOwnProperty.call(a,"default")?a.default:a,n=n&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n,p=p&&Object.prototype.hasOwnProperty.call(p,"default")?p.default:p,s=s&&Object.prototype.hasOwnProperty.call(s,"default")?s.default:s;var y=u.registerTemplate(c);p(c,"stylesheets",[]),p(c,"stylesheetTokens",{hostAttribute:"x-node_env_node_env-host",shadowAttribute:"x-node_env_node_env"});var h=function(p){function s(){return r(this,s),o(this,e(a(s),"apply",this,arguments))}return n(s,p),l(s,[{key:"connectedCallback",value:function(){t(this._ES5ProxyType?this.get("root"):this.root,"querySelector","outsideOfProductionCheck")}}]),s}(u.LightningElement);return u.registerComponent(h,{tmpl:y})});
\ No newline at end of file
+define("x/node_env",["exports","proxy-compat/callKey2","proxy-compat/callKey1","@babel/runtime/helpers/classCallCheck","@babel/runtime/helpers/createClass","@babel/runtime/helpers/possibleConstructorReturn","@babel/runtime/helpers/getPrototypeOf","@babel/runtime/helpers/inherits","proxy-compat/setKey","@babel/runtime/helpers/objectDestructuringEmpty","lwc"],function(e,t,r,l,o,a,n,p,s,u,c){function y(e,t,r,l){return u(e),[]}t=t&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t,r=r&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r,l=l&&Object.prototype.hasOwnProperty.call(l,"default")?l.default:l,o=o&&Object.prototype.hasOwnProperty.call(o,"default")?o.default:o,a=a&&Object.prototype.hasOwnProperty.call(a,"default")?a.default:a,n=n&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n,p=p&&Object.prototype.hasOwnProperty.call(p,"default")?p.default:p,s=s&&Object.prototype.hasOwnProperty.call(s,"default")?s.default:s,u=u&&Object.prototype.hasOwnProperty.call(u,"default")?u.default:u;var d=c.registerTemplate(y);s(y,"stylesheets",[]),s(y,"stylesheetTokens",{hostAttribute:"x-node_env_node_env-host",shadowAttribute:"x-node_env_node_env"});var i=function(e){function s(){return l(this,s),a(this,t(n(s),"apply",this,arguments))}return p(s,e),o(s,[{key:"connectedCallback",value:function(){r(this._ES5ProxyType?this.get("root"):this.root,"querySelector","outsideOfProductionCheck")}}]),s}(c.LightningElement),h=c.registerComponent(i,{tmpl:d});e.default=h,Object.defineProperty(e,"__esModule",{value:!0})});
diff --git a/packages/@lwc/compiler/src/bundler/bundler.ts b/packages/@lwc/compiler/src/bundler/bundler.ts
index b67c0f3217..9b1f98f8d4 100755
--- a/packages/@lwc/compiler/src/bundler/bundler.ts
+++ b/packages/@lwc/compiler/src/bundler/bundler.ts
@@ -117,10 +117,18 @@ export async function bundle(options: NormalizedCompileOptions): Promise {
expect(success).toBe(true);
expect(pretify(result.code)).toBe(
- pretify(`define('x/class_and_template', ['lwc'], function (lwc) {
+ pretify(`define('x/class_and_template', ['exports', 'lwc'], function (exports, lwc) {
function tmpl($api, $cmp, $slotset, $ctx) {
const {
t: api_text,
@@ -66,7 +66,8 @@ describe('module resolver', () => {
}
}
- return Test;
+ exports.default = Test;
+ Object.defineProperty(exports, '__esModule', { value: true });
});`)
);
});
@@ -90,7 +91,7 @@ describe('module resolver', () => {
const { success, result } = await compile(noOutputConfig);
expect(success).toBe(true);
expect(pretify(result.code)).toBe(
- pretify(`define('x/class_and_template', ['lwc'], function (lwc) {
+ pretify(`define('x/class_and_template', ['exports', 'lwc'], function (exports, lwc) {
function tmpl($api, $cmp, $slotset, $ctx) {
const {
t: api_text,
@@ -115,7 +116,8 @@ describe('module resolver', () => {
}
}
- return Test;
+ exports.default = Test;
+ Object.defineProperty(exports, '__esModule', { value: true });
});`)
);
});