summaryrefslogtreecommitdiffhomepage
path: root/gui/tasks/dev-server.js
diff options
context:
space:
mode:
authorOskar Nyberg <oskar@mullvad.net>2020-11-26 10:04:11 +0100
committerOskar Nyberg <oskar@mullvad.net>2020-11-26 10:04:11 +0100
commitf99e235ae18e9c71a6381bd10d9d2a1d0bea0f19 (patch)
tree0c05132cfdb5cda55cc6226a547c0b000cf73b05 /gui/tasks/dev-server.js
parent581a487b6012ea753137a1d9d3cc343d15de684d (diff)
parent963ad808e25f7439656554878fcebc146be20f77 (diff)
downloadmullvadvpn-f99e235ae18e9c71a6381bd10d9d2a1d0bea0f19.tar.xz
mullvadvpn-f99e235ae18e9c71a6381bd10d9d2a1d0bea0f19.zip
Merge branch 'upgrade-to-electron-11'
Diffstat (limited to 'gui/tasks/dev-server.js')
-rw-r--r--gui/tasks/dev-server.js40
1 files changed, 40 insertions, 0 deletions
diff --git a/gui/tasks/dev-server.js b/gui/tasks/dev-server.js
new file mode 100644
index 0000000000..067174ab17
--- /dev/null
+++ b/gui/tasks/dev-server.js
@@ -0,0 +1,40 @@
+const serverFactory = require('spa-server');
+
+function startWebServer(done) {
+ serverFactory
+ .create({
+ path: './build',
+ port: 8080,
+ middleware: [correctWorkingDirectory],
+ })
+ .start(done);
+}
+
+function correctWorkingDirectory(request, response, next) {
+ if (request.url === '/src/renderer/index.js') {
+ const write = response.write.bind(response);
+ response.write = (data) => {
+ let s = data.toString();
+
+ // Add code that changes to the correct working directory after `"use strict";` which is
+ // located on the first line of the source file.
+ const index = s.indexOf('\n');
+
+ if (index !== -1) {
+ const insertionIndex = index + 1;
+ s =
+ s.slice(0, insertionIndex) +
+ 'try{process.chdir("build/src/renderer")}catch(e){}\n' +
+ s.slice(insertionIndex);
+ }
+
+ write(s);
+ };
+ }
+
+ next();
+}
+
+startWebServer.displayName = 'start-dev-server';
+
+exports.start = startWebServer;