/ packages / ui / build.mjs
build.mjs
 1  import fs from 'node:fs';
 2  import { replaceTscAliasPaths } from 'tsc-alias';
 3  import { resolve } from 'node:path';
 4  import esbuild from 'esbuild';
 5  
 6  /**
 7   * @type { import('esbuild').BuildOptions }
 8   */
 9  const buildOptions = {
10    entryPoints: ['./index.ts', './lib/**/*.ts', './lib/**/*.tsx'],
11    tsconfig: './tsconfig.json',
12    bundle: false,
13    target: 'es6',
14    outdir: './dist',
15    sourcemap: true,
16  };
17  
18  await esbuild.build(buildOptions);
19  
20  /**
21   * Post build paths resolve since ESBuild only natively
22   * support paths resolution for bundling scenario
23   * @url https://github.com/evanw/esbuild/issues/394#issuecomment-1537247216
24   */
25  await replaceTscAliasPaths({
26    configFile: 'tsconfig.json',
27    watch: false,
28    outDir: 'dist',
29    declarationDir: 'dist',
30  });
31  
32  fs.copyFileSync(resolve('lib', 'global.css'), resolve('dist', 'global.css'));