1import { defineConfig } from 'tsup'
2
3export default defineConfig([
4 // Browser bundle
5 {
6 entry: ['src/main.ts'],
7 format: ['esm'],
8 outDir: 'dist',
9 outExtension: () => ({ js: '.js' }),
10 target: 'es2024',
11 platform: 'browser',
12 minify: false,
13 sourcemap: true,
14 clean: true,
15 bundle: true,
16 splitting: false,
17 external: [],
18 // noExternal: [],
19 },
20 // Injectable controls script (minified for injection)
21 {
22 entry: ['src/injected-controls.ts'],
23 format: ['iife'],
24 outDir: 'dist',
25 outExtension: () => ({ js: '.min.js' }),
26 target: 'es2024',
27 platform: 'browser',
28 minify: true,
29 sourcemap: false,
30 bundle: true,
31 splitting: false,
32 globalName: '__dumberControls',
33 external: [],
34 onSuccess: async () => {
35 console.log('✓ Injectable controls script compiled successfully')
36 }
37 },
38 // Node.js build script
39 {
40 entry: ['src/build-html.ts', 'src/utils/html-builder.ts'],
41 format: ['esm'],
42 outDir: 'dist',
43 outExtension: () => ({ js: '.js' }),
44 target: 'es2024',
45 platform: 'node',
46 minify: false,
47 sourcemap: false,
48 bundle: true,
49 splitting: false,
50 onSuccess: async () => {
51 console.log('✓ Frontend TypeScript compiled successfully')
52 }
53 }
54])