mirror of
https://github.com/zoriya/v10.git
synced 2026-08-16 02:45:09 +00:00
41 lines
1.1 KiB
TypeScript
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)));
|