mirror of
https://github.com/deepseek-ai/deepseek-harness
synced 2026-08-15 21:04:50 +00:00
dumble (0.2.x, ~530 dl/wk, single-maintainer) was a bus-factor risk as the load-bearing bundler. tsdown (rolldown-based, ~2.5M dl/wk, actively maintained) replaces it while output stays list-identical, verified by snapshot diff: 17 JS bundles, externals preserved, schemastery dual .mjs/.cjs and logger-console node+browser entries intact. Root tsdown.config.ts uses workspace globs ['vendor/*', 'packages/*'] (explicit, so examples/* stays excluded); two per-package overrides in vendor/ cover the special shapes and are logged in vendor/README.md as ours (not upstream sync surface). scripts/build.ts (dumble orchestration) is deleted; yarn build = tsc -b && tsdown. tsc -b keeps owning declarations (dts: false, clean: false). Rationale recorded in ADR 0008 (also covers the direct-esbuild and pkgroll alternatives). Gates: lint, typecheck, 134 tests, hygiene (knip/publint/constraints), demo smoke all green.
19 lines
546 B
TypeScript
19 lines
546 B
TypeScript
import { defineConfig } from 'tsdown'
|
|
|
|
/**
|
|
* schemastery has no `"type": "module"` and publishes dual-format output
|
|
* (package.json: main → lib/index.cjs, module → lib/index.mjs). Pin the
|
|
* extensions explicitly — the defaults for a CommonJS package would emit
|
|
* .mjs/.js instead.
|
|
*/
|
|
export default defineConfig({
|
|
entry: ['src/index.ts'],
|
|
outDir: 'lib',
|
|
format: ['esm', 'cjs'],
|
|
platform: 'node',
|
|
target: 'es2024',
|
|
outExtensions: ({ format }) => ({ js: format === 'es' ? '.mjs' : '.cjs' }),
|
|
dts: false,
|
|
clean: false,
|
|
})
|