import { builtinModules } from 'node:module'
import path from 'node:path'
import { defineConfig } from 'vite'
import { PRODUCTION_OUTPUT } from './scripts/vite-production-output'

const nodeExternals = builtinModules.flatMap((m) => [m, `node:${m}`])

export default defineConfig({
  publicDir: false,
  build: {
    outDir: 'dist/preload',
    emptyOutDir: true,
    minify: 'oxc',
    sourcemap: false,
    target: 'node20',
    lib: {
      entry: 'src/preload/preload.ts',
      formats: ['cjs'],
      fileName: () => 'preload.cjs',
    },
    rollupOptions: {
      output: PRODUCTION_OUTPUT,
      external: ['electron', ...nodeExternals],
    },
  },
  resolve: {
    alias: {
      '@shared': path.resolve(import.meta.dirname, 'src/shared'),
    },
  },
})