import type { Options } from 'tsup'; import { defineConfig } from 'tsup'; export function createTsupConfig({ entry = ['src/index.ts'], external = [], noExternal = [], platform = 'node', format = ['esm', 'cjs'], target = 'es2022', skipNodeModulesBundle = true, clean = true, shims = format.includes('cjs'), cjsInterop = format.includes('cjs'), minify = false, terserOptions = { mangle: false, keep_classnames: true, keep_fnames: true, }, splitting = false, keepNames = true, dts = true, sourcemap = true, esbuildPlugins = [], treeshake = false, outDir = 'dist', }: Options = {}) { return defineConfig({ entry, external, noExternal, platform, format, skipNodeModulesBundle, target, clean, shims, cjsInterop, minify, terserOptions, splitting, keepNames, dts, sourcemap, esbuildPlugins, treeshake, outDir, }); }