// @ts-check /** * @param {Object} opts - Options for building configurations. * @param {string[]} opts.entry - The entry array. * @returns {import('tsdown').UserConfig} */ export function modernConfig(opts) { return { entry: opts.entry, format: ['cjs', 'esm'], target: ['chrome91', 'firefox90', 'edge91', 'safari15', 'ios15', 'opera77'], // Rolldown lowers private fields for browser target arrays. Keep the // transform target at ES2022 to match the syntax that tsup emitted. inputOptions: { transform: { target: 'es2022' } }, outDir: 'build/modern', dts: true, fixedExtension: false, sourcemap: true, clean: true, } } /** * @param {Object} opts - Options for building configurations. * @param {string[]} opts.entry - The entry array. * @returns {import('tsdown').UserConfig} */ export function legacyConfig(opts) { return { entry: opts.entry, format: ['cjs', 'esm'], target: ['es2020', 'node16'], outDir: 'build/legacy', dts: true, fixedExtension: false, sourcemap: true, clean: true, } }