import { defineConfig, type Options } from 'tsup'; function options(prefix: string, minify: boolean): Options { return { entry: { [prefix]: 'src/index.ts', }, format: ['cjs', 'esm', 'iife'], outExtension({ format }) { switch (format) { case 'cjs': return { js: '.cjs' }; case 'esm': return { js: '.mjs' }; case 'iife': return { js: '.js' }; } }, globalName: 'Preserves', dts: true, sourcemap: true, clean: true, minify, target: 'es2017', }; } export default defineConfig([options('preserves', false), options('preserves.min', true)]);