From 407858a338b2ac995a6a7acc5a6632469d1b076e Mon Sep 17 00:00:00 2001
From: Christoph Reiter <reiter.christoph@gmail.com>
Date: Thu, 3 Oct 2019 15:54:27 +0200
Subject: [PATCH] Add code splitting; split main and demo bundle

---
 packages/language-select/assets/index.html    |  2 +-
 packages/language-select/package.json         |  3 +-
 packages/language-select/rollup.config.js     | 15 +++++--
 packages/language-select/src/demo.js          | 39 +------------------
 packages/language-select/src/index.js         |  1 -
 .../src/vpu-language-select-demo.js           | 38 ++++++++++++++++++
 ...guage-select.js => vpu-language-select.js} |  0
 packages/language-select/test/unit.js         |  2 +-
 8 files changed, 54 insertions(+), 46 deletions(-)
 delete mode 100644 packages/language-select/src/index.js
 create mode 100644 packages/language-select/src/vpu-language-select-demo.js
 rename packages/language-select/src/{language-select.js => vpu-language-select.js} (100%)

diff --git a/packages/language-select/assets/index.html b/packages/language-select/assets/index.html
index 40d6e96c..3c2b6d66 100644
--- a/packages/language-select/assets/index.html
+++ b/packages/language-select/assets/index.html
@@ -2,7 +2,7 @@
 <html>
 <head>
     <meta charset="UTF-8">
-    <script type="module" src="bundle.js"></script>
+    <script type="module" src="vpu-language-select-demo.js"></script>
     <style>
     body {
         font-family: sans;
diff --git a/packages/language-select/package.json b/packages/language-select/package.json
index db13c3df..5aa037e6 100644
--- a/packages/language-select/package.json
+++ b/packages/language-select/package.json
@@ -1,7 +1,7 @@
 {
   "name": "vpu-language-select",
   "version": "1.0.0",
-  "main": "src/index.js",
+  "main": "src/vpu-language-select.js",
   "devDependencies": {
     "karma": "^4.2.0",
     "karma-chai": "^0.1.0",
@@ -20,6 +20,7 @@
     "rollup-plugin-terser": "^5.1.1",
     "rollup-plugin-json": "^4.0.0",
     "rollup-plugin-multi-entry": "^2.1.0",
+    "rollup-plugin-delete": "^1.1.0",
     "i18next-scanner": "^2.10.2",
     "vpu-common": "file:./vendor/common"
   },
diff --git a/packages/language-select/rollup.config.js b/packages/language-select/rollup.config.js
index 9de7bfa6..d970fac6 100644
--- a/packages/language-select/rollup.config.js
+++ b/packages/language-select/rollup.config.js
@@ -7,18 +7,25 @@ import json from 'rollup-plugin-json';
 import serve from 'rollup-plugin-serve';
 import multiEntry from 'rollup-plugin-multi-entry';
 import consts from 'rollup-plugin-consts';
+import del from 'rollup-plugin-delete';
 
 const build = (typeof process.env.BUILD !== 'undefined') ? process.env.BUILD : 'local';
 console.log("build: " + build);
 
 export default {
-    input: (build != 'test') ? 'src/demo.js' : 'test/**/*.js',
+    input: (build != 'test') ? ['src/vpu-language-select.js', 'src/vpu-language-select-demo.js'] : 'test/**/*.js',
     output: {
-        file: 'dist/bundle.js',
-        format: 'esm'
+        dir: 'dist',
+        entryFileNames: '[name].js',
+        chunkFileNames: 'shared/[name].[hash].[format].js',
+        format: 'esm',
+        sourcemap: true
     },
     plugins: [
-        multiEntry(),
+        del({
+            targets: 'dist/*'
+        }),
+        (build == 'test') ? multiEntry() : false,
         consts({
             environment: build,
         }),
diff --git a/packages/language-select/src/demo.js b/packages/language-select/src/demo.js
index faab804e..372555e2 100644
--- a/packages/language-select/src/demo.js
+++ b/packages/language-select/src/demo.js
@@ -1,38 +1 @@
-import {html, LitElement} from 'lit-element';
-import './language-select.js';
-import * as commonUtils from 'vpu-common/utils';
-
-class LanguageSelectDemo extends LitElement {
-
-    constructor() {
-        super();
-        this.lang = 'de';
-        this.handleChange =  this.handleChange.bind(this);
-    }
-
-    static get properties() {
-        return {
-            lang: {type: String},
-        };
-    }
-
-    handleChange(e) {
-        this.lang = e.detail.lang;
-    }
-
-    connectedCallback() {
-        super.connectedCallback();
-        window.addEventListener('vpu-language-changed', this.handleChange);
-    }
-
-    disconnectedCallback() {
-        window.removeEventListener('vpu-language-changed', this.handleChange);
-        super.disconnectedCallback();
-    }
-
-    render() {
-        return html`${this.lang}`;
-    }
-}
-
-commonUtils.defineCustomElement('vpu-language-select-demo', LanguageSelectDemo);
+import './vpu-language-select-demo.js';
\ No newline at end of file
diff --git a/packages/language-select/src/index.js b/packages/language-select/src/index.js
deleted file mode 100644
index 0792a1f1..00000000
--- a/packages/language-select/src/index.js
+++ /dev/null
@@ -1 +0,0 @@
-import './language-select.js';
diff --git a/packages/language-select/src/vpu-language-select-demo.js b/packages/language-select/src/vpu-language-select-demo.js
new file mode 100644
index 00000000..d5d7ea76
--- /dev/null
+++ b/packages/language-select/src/vpu-language-select-demo.js
@@ -0,0 +1,38 @@
+import {html, LitElement} from 'lit-element';
+import './vpu-language-select.js';
+import * as commonUtils from 'vpu-common/utils';
+
+class LanguageSelectDemo extends LitElement {
+
+    constructor() {
+        super();
+        this.lang = 'de';
+        this.handleChange =  this.handleChange.bind(this);
+    }
+
+    static get properties() {
+        return {
+            lang: {type: String},
+        };
+    }
+
+    handleChange(e) {
+        this.lang = e.detail.lang;
+    }
+
+    connectedCallback() {
+        super.connectedCallback();
+        window.addEventListener('vpu-language-changed', this.handleChange);
+    }
+
+    disconnectedCallback() {
+        window.removeEventListener('vpu-language-changed', this.handleChange);
+        super.disconnectedCallback();
+    }
+
+    render() {
+        return html`${this.lang}`;
+    }
+}
+
+commonUtils.defineCustomElement('vpu-language-select-demo', LanguageSelectDemo);
diff --git a/packages/language-select/src/language-select.js b/packages/language-select/src/vpu-language-select.js
similarity index 100%
rename from packages/language-select/src/language-select.js
rename to packages/language-select/src/vpu-language-select.js
diff --git a/packages/language-select/test/unit.js b/packages/language-select/test/unit.js
index 1ac3cc0c..b79ca875 100644
--- a/packages/language-select/test/unit.js
+++ b/packages/language-select/test/unit.js
@@ -1,4 +1,4 @@
-import '../src/language-select.js';
+import '../src/vpu-language-select.js';
 import '../src/demo.js';
 
 describe('vpu-language-select basics', () => {
-- 
GitLab