Files
v10/build/tsdown.ts
T

44 lines
1.3 KiB
TypeScript

/** `dev` and `default` outputs consumed by package `exports` conditions. */
export type PackageBuildMode = 'dev' | 'default';
export const packageBuildModes: PackageBuildMode[] = ['dev', 'default'];
/** Applied to every tsdown config in the monorepo. */
export const baseConfig = {
report: process.env.CI === 'true',
} as const;
/** Shared options for packages that emit `dist/dev` and `dist/default`. */
export function packageBuildConfig(mode: PackageBuildMode, platform: 'browser' | 'neutral' = 'neutral') {
return {
...baseConfig,
platform,
format: 'es' as const,
sourcemap: true,
clean: true,
hash: false,
unbundle: true,
outDir: `dist/${mode}`,
define: {
__DEV__: mode === 'dev' ? 'true' : 'false',
},
dts: mode === 'dev' ? ({ tsgo: true, tsconfig: 'tsconfig.dts.json' } as const) : (false as const),
};
}
export function isDevBuildMode(mode: PackageBuildMode): boolean {
return mode === 'dev';
}
/** Single-output packages (e.g. `@videojs/utils`) without dev/default splits. */
export const neutralLibraryConfig = {
...baseConfig,
platform: 'neutral' as const,
format: 'es' as const,
sourcemap: true,
clean: true,
hash: false,
unbundle: true,
dts: { tsgo: true, tsconfig: 'tsconfig.dts.json' } as const,
};