From c5134eb93eadb6b0501a05a7cf89e7a6dc33dd90 Mon Sep 17 00:00:00 2001
From: Markin Igor <markin.io210@gmail.com>
Date: Wed, 31 Oct 2018 16:20:03 +0300
Subject: [PATCH] Rework {{methods}} placeholder and disabled methods mangling
 due to make them accessible from outside.

---
 javascript/src/viamapi-iframe.js | 11 +++++++++--
 javascript/webpack.config.js     | 11 +++++++++++
 2 files changed, 20 insertions(+), 2 deletions(-)

diff --git a/javascript/src/viamapi-iframe.js b/javascript/src/viamapi-iframe.js
index 9d5927e..1b8a8a7 100644
--- a/javascript/src/viamapi-iframe.js
+++ b/javascript/src/viamapi-iframe.js
@@ -4,7 +4,11 @@ const pkijs = require('pkijs');
 const asn1js = require('asn1js');
 const pvutils = require('pvutils');
 const Penpal = require('penpal').default;
-window.axios = require('axios');
+const axios = require('axios');
+
+// Make these libs accessible from other scripts
+window.Penpal = Penpal;
+window.axios = axios;
 //*********************************************************************************
 
 const CERTIFIATE_Version_1 = 0;
@@ -2188,7 +2192,10 @@ const connection = Penpal.connectToParent({
         })
       });
     },
-    //{{methods}}
+    // Previously there was "//{{methods}}" placeholder, but we can't use it anymore since Uglify in webpack
+    // stripping this comment and there is no chance to preserve it
+    // (even with special words like @preserve or comment /*! */)
+    placeholderForExternalMethods:1
   }
 });
 
diff --git a/javascript/webpack.config.js b/javascript/webpack.config.js
index b93e164..7e9f89d 100644
--- a/javascript/webpack.config.js
+++ b/javascript/webpack.config.js
@@ -1,8 +1,19 @@
+const UglifyJsPlugin = require('uglifyjs-webpack-plugin');
+
 module.exports = {
   mode: 'production',
   entry: {
     'viamapi-client': './src/viamapi-client.js',
     'viamapi-iframe': './src/viamapi-iframe.js',
     'wopiapi-iframe': './src/wopiapi-iframe.js'
+  },
+  optimization: {
+    minimizer: [
+      new UglifyJsPlugin({
+        uglifyOptions: {
+          mangle: false
+        }
+      })
+    ]
   }
 };
-- 
GitLab