import { defineConfig, type Options } from 'tsup'; import { withIifeExternalPlugin, type Externals } from './iifeExternalPlugin.js'; const externals: Externals = { '@preserves/core': 'Preserves', }; function options(prefix: string, minify: boolean): Options { return withIifeExternalPlugin(externals, { 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: 'PreservesSchema', dts: true, sourcemap: true, clean: true, minify, target: 'es2017', }); } export default defineConfig([ options('preserves-schema', false), options('preserves-schema.min', true), ]);