diff options
| author | Oskar Nyberg <oskar@mullvad.net> | 2021-02-15 17:51:57 +0100 |
|---|---|---|
| committer | Oskar Nyberg <oskar@mullvad.net> | 2021-02-19 12:00:10 +0100 |
| commit | 9abcb98d5cb30e8693814be648c692c5d242e20c (patch) | |
| tree | 90855a8b93c8e600eb0805b9584caaef8088ec2b /gui/tasks/scripts.js | |
| parent | 846fb07bc4dbf9d8065daee0c78c5623f60a6751 (diff) | |
| download | mullvadvpn-9abcb98d5cb30e8693814be648c692c5d242e20c.tar.xz mullvadvpn-9abcb98d5cb30e8693814be648c692c5d242e20c.zip | |
Improve TypeScript build process
Diffstat (limited to 'gui/tasks/scripts.js')
| -rw-r--r-- | gui/tasks/scripts.js | 20 |
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', '.'); |
