// Build de l'extension : un seul bundle CJS `dist/extension.js`.
// esbuild résout `@arboretum/shared` via le symlink workspace et l'inline dans le bundle
// (VSIX 100 % autonome, sans node_modules embarqué) ; seul `vscode` reste externe (fourni par l'hôte).
import esbuild from 'esbuild';

const watch = process.argv.includes('--watch');

/** @type {import('esbuild').BuildOptions} */
const options = {
  entryPoints: ['src/extension.ts'],
  bundle: true,
  platform: 'node',
  format: 'cjs',
  target: 'node18', // VSCode 1.85 embarque Electron/Node 18
  outfile: 'dist/extension.js',
  external: ['vscode'], // module fourni par l'hôte VSCode, jamais bundlé
  sourcemap: true,
  minify: !watch,
  logLevel: 'info',
};

if (watch) {
  const ctx = await esbuild.context(options);
  await ctx.watch();
  console.log('[esbuild] watching…');
} else {
  await esbuild.build(options);
}
