import { defineConfig } from 'vite';
import { resolve, basename, extname } from 'path';
import { sync } from 'glob';

export default defineConfig({
    mode: 'production',
    build: {
        rollupOptions: {
            input: sync(resolve(__dirname, 'src', '*.ts')).reduce<Record<string, string>>((entries, file) => {
                const name = basename(file, extname(file));
                entries[name] = file;
                return entries;
            }, {}),
            output: {
                entryFileNames: '[name].js',
                manualChunks: undefined,
            },
        },
        minify: 'terser',
        outDir: resolve(__dirname, 'dist'),
    },
    resolve: {
        extensions: ['.ts', '.js'],
    }
});
