Files
v10/packages/utils/tsdown.config.ts
T

41 lines
1.1 KiB
TypeScript

import type { UserConfig } from 'tsdown';
import { defineConfig } from 'tsdown';
type BuildMode = 'default' | 'server';
const buildModes: BuildMode[] = ['default', 'server'];
const isServer = (mode: BuildMode) => mode === 'server';
const entries = {
array: './src/array/index.ts',
dom: './src/dom/index.ts',
events: './src/events/index.ts',
function: './src/function/index.ts',
number: './src/number/index.ts',
object: './src/object/index.ts',
predicate: './src/predicate/index.ts',
string: './src/string/index.ts',
style: './src/style/index.ts',
time: './src/time/index.ts',
types: './src/types/index.ts',
};
const createConfig = (mode: BuildMode): UserConfig => ({
entry: entries,
platform: isServer(mode) ? 'node' : 'neutral',
format: 'es',
sourcemap: true,
clean: true,
hash: false,
unbundle: true,
outExtensions: isServer(mode) ? () => ({ js: '.js', dts: '.d.ts' }) : undefined,
outDir: isServer(mode) ? 'dist/server' : 'dist',
define: {
__BROWSER__: isServer(mode) ? 'false' : 'true',
},
dts: !isServer(mode),
});
export default defineConfig(buildModes.map((mode) => createConfig(mode)));