const esbuild = require('esbuild'); const { join } = require('path'); const vite = require('vite'); /** * @param {string} packageName * @returns {Promise} */ function buildPackageEsbuild(packageName) { const config = require(`../packages/${packageName}/esbuild.config.js`); return esbuild.build(config); } function buildPackageVite(packageName) { return vite.build({ configFile: join(__dirname, `../packages/${packageName}/vite.config.js`), }); } function buildAll() { // Esbuild can natively load a typescript main file, // so we don't need to bundle `service-shared`. // We onyl bundle `shared` for vite. const buildShared = buildPackageEsbuild('shared'); return Promise.all([ buildShared.then(() => buildPackageEsbuild('main')), buildPackageEsbuild('service-inject'), buildPackageEsbuild('service-preload'), buildPackageEsbuild('preload'), buildPackageVite('renderer'), ]); } buildAll().catch((err) => { console.error(err); process.exit(1); });