aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/build.js
blob: 416530d6c5a0b840b425caf6de757254c1c6fe20 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
const esbuild = require('esbuild');
const { join } = require('path');
const vite = require('vite');

/**
 * @param {string} packageName
 * @returns {Promise<import('esbuild').BuildResult>}
 */
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);
});