summaryrefslogtreecommitdiffhomepage
path: root/gui/tasks/scripts.js
diff options
context:
space:
mode:
authorOskar Nyberg <oskar@mullvad.net>2021-02-15 17:51:57 +0100
committerOskar Nyberg <oskar@mullvad.net>2021-02-19 12:00:10 +0100
commit9abcb98d5cb30e8693814be648c692c5d242e20c (patch)
tree90855a8b93c8e600eb0805b9584caaef8088ec2b /gui/tasks/scripts.js
parent846fb07bc4dbf9d8065daee0c78c5623f60a6751 (diff)
downloadmullvadvpn-9abcb98d5cb30e8693814be648c692c5d242e20c.tar.xz
mullvadvpn-9abcb98d5cb30e8693814be648c692c5d242e20c.zip
Improve TypeScript build process
Diffstat (limited to 'gui/tasks/scripts.js')
-rw-r--r--gui/tasks/scripts.js20
1 files changed, 18 insertions, 2 deletions
diff --git a/gui/tasks/scripts.js b/gui/tasks/scripts.js
index d32e704625..bd4626a44a 100644
--- a/gui/tasks/scripts.js
+++ b/gui/tasks/scripts.js
@@ -1,4 +1,5 @@
const { exec } = require('child_process');
+const fs = require('fs');
const { dest, series, parallel } = require('gulp');
const ts = require('gulp-typescript');
const inject = require('gulp-inject-string');
@@ -8,8 +9,10 @@ const browserify = require('browserify');
const buffer = require('vinyl-buffer');
const source = require('vinyl-source-stream');
-function makeWatchCompiler(onFirstSuccess) {
+function makeWatchCompiler(onFirstSuccess, onSuccess) {
let firstBuild = true;
+ let lastBundle;
+ let lastPreloadBundle;
const compileScripts = function () {
const watch = new TscWatchClient();
@@ -17,11 +20,24 @@ function makeWatchCompiler(onFirstSuccess) {
parallel(
makeBrowserifyRenderer(true),
makeBrowserifyPreload(true),
- )(() => {
+ )(async () => {
if (firstBuild) {
firstBuild = false;
onFirstSuccess();
}
+
+ let bundle = await fs.promises.readFile('./build/src/renderer/bundle.js');
+ let preloadBundle = await fs.promises.readFile('./build/src/renderer/preloadBundle.js');
+ if (
+ !lastBundle ||
+ !preloadBundle ||
+ !lastBundle.equals(bundle) ||
+ !lastPreloadBundle.equals(preloadBundle)
+ ) {
+ lastBundle = bundle;
+ lastPreloadBundle = preloadBundle;
+ onSuccess();
+ }
}),
);
watch.start('--noClear', '--sourceMap', '--inlineSources', '--incremental', '--project', '.');