#!/usr/bin/env node // @ts-check const { build } = require('vite'); /** @type 'production' | 'development' */ const mode = process.env.MODE = process.env.MODE || 'production'; /** @type string[] */ const packagesToBuild = [ 'main', 'preload', 'renderer', ]; /** * Builds all packages from `packagesToBuild` sequentially. * * @returns Promise */ async function buildAll() { const totalTimeLabel = 'Total bundling time'; console.time(totalTimeLabel); for (const packageToBuild of packagesToBuild) { const consoleGroupName = `package ${packageToBuild}`; console.group(consoleGroupName); const timeLabel = 'Bundling time'; console.time(timeLabel); const packageConfigPath = `packages/${packageToBuild}/vite.config.js`; await build({ configFile: packageConfigPath, mode, }); console.timeEnd(timeLabel); console.groupEnd(); } console.timeEnd(totalTimeLabel); } buildAll().catch((err) => { console.error(err); process.exit(1); });