summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorMarkus Pettersson <markus.pettersson@mullvad.net>2025-05-06 11:55:21 +0200
committerMarkus Pettersson <markus.pettersson@mullvad.net>2025-05-06 11:55:21 +0200
commitc228ff918ac023c1c76bb4cf4f3d595a181cea63 (patch)
tree5afb4005c47f8c9e214a45404293994a89448626
parente2d5c7affb74a055423513319be238378d2a06f0 (diff)
parentcf164ad522889932d0235b2ecb45b44dd56d11fb (diff)
downloadmullvadvpn-c228ff918ac023c1c76bb4cf4f3d595a181cea63.tar.xz
mullvadvpn-c228ff918ac023c1c76bb4cf4f3d595a181cea63.zip
Merge branch 're-introduce-type-checking-before-production-builds-des-2111'
-rw-r--r--desktop/packages/mullvad-vpn/package.json1
-rw-r--r--desktop/packages/mullvad-vpn/tasks/build.js5
-rw-r--r--desktop/packages/mullvad-vpn/tasks/utils.js23
3 files changed, 22 insertions, 7 deletions
diff --git a/desktop/packages/mullvad-vpn/package.json b/desktop/packages/mullvad-vpn/package.json
index 00dddce9cc..5535b6d561 100644
--- a/desktop/packages/mullvad-vpn/package.json
+++ b/desktop/packages/mullvad-vpn/package.json
@@ -93,6 +93,7 @@
"develop": "vite",
"develop:vite": "vite",
"test": "cross-env NODE_ENV=test mocha --reporter spec --require ts-node/register --require \"test/unit/setup.ts\" \"test/unit/*.spec.ts\"",
+ "type-check": "tsc --noEmit",
"update-translations": "node scripts/extract-translations",
"pack:mac": "node tasks/pack-mac.js",
"pack:win": "node tasks/pack-windows.js",
diff --git a/desktop/packages/mullvad-vpn/tasks/build.js b/desktop/packages/mullvad-vpn/tasks/build.js
index 856f061d5a..1f429b61e2 100644
--- a/desktop/packages/mullvad-vpn/tasks/build.js
+++ b/desktop/packages/mullvad-vpn/tasks/build.js
@@ -3,7 +3,7 @@ const {
copyRecursively,
getCopyExtensionFilter,
removeRecursively,
- runCommand,
+ runNpmScript,
} = require('./utils');
const WORKSPACE_PROJECT_ROOT = path.resolve(__dirname, '..');
@@ -32,7 +32,8 @@ async function copyAssetsToBuildDirectory() {
async function build() {
await removeRecursively(BUILD_DIR);
- await runCommand('npm run build:vite');
+ await runNpmScript('type-check');
+ await runNpmScript('build:vite');
await copyAssetsToBuildDirectory();
}
diff --git a/desktop/packages/mullvad-vpn/tasks/utils.js b/desktop/packages/mullvad-vpn/tasks/utils.js
index 4a5d25b415..0b40022d53 100644
--- a/desktop/packages/mullvad-vpn/tasks/utils.js
+++ b/desktop/packages/mullvad-vpn/tasks/utils.js
@@ -39,15 +39,27 @@ async function removeRecursively(path) {
});
}
+async function runNpmScript(scriptName) {
+ const command = `npm run ${scriptName}`;
+
+ try {
+ await runCommand(command);
+ } catch (errors) {
+ if (Array.isArray(errors)) {
+ // Remove first error as it will always
+ // bubble up and be printed to the console.
+ errors.slice(1).forEach((error) => {
+ console.error(new Error(error));
+ });
+ }
+ }
+}
+
async function runCommand(command) {
return new Promise((resolve, reject) => {
childProcess.exec(command, (error, stdout, stderr) => {
if (error) {
- return reject(error);
- }
-
- if (stderr) {
- console.error(stderr);
+ return reject([error, stdout, stderr]);
}
return resolve([stdout, stderr]);
@@ -63,4 +75,5 @@ exports.copyRecursively = copyRecursively;
exports.getCopyExtensionFilter = getCopyExtensionFilter;
exports.removeRecursively = removeRecursively;
exports.runCommand = runCommand;
+exports.runNpmScript = runNpmScript;
exports.setNodeEnvironment = setNodeEnvironment;