LibreChat/packages/api/tsdown.config.mjs
Danny Avila ad0f72dede
🌀 ci: Deterministic Circular Dependency Checks (#14579)
* 🌀 ci: Deterministic Circular Dependency Checks

* 🌀 ci: Enforce Type-Level Edges in Circular Dependency Scan

* 🌀 ci: Materialize Import-Type Expression Edges in Cycle Scan

* 🌀 ci: Collect Inline Type-Only Specifier Edges in Cycle Scan
2026-08-01 14:43:26 -04:00

23 lines
1 KiB
JavaScript

import path from 'node:path';
import { defineConfig } from 'tsdown';
export default defineConfig({
// The telemetry entry is a thin shim (`src/telemetry.ts`) rather than the
// `src/telemetry/index.ts` barrel: oxc emits declarations flat into outDir keyed
// by source basename, so two `index.ts` entries would collide (index.d.cts +
// index2.d.cts). Distinct basenames yield stable `index.*` / `telemetry.*` output.
entry: ['src/index.ts', 'src/telemetry.ts'],
format: ['cjs'],
platform: 'node',
dts: { oxc: true },
outDir: 'dist',
sourcemap: true,
// Warn on module cycles at build time; CI enforces via config/circular-deps.mjs.
checks: { circularDependency: true },
// Externalize every third-party dependency (consumers provide the peers) and bundle
// only first-party code: relative imports and the `~/*` tsconfig alias (-> src).
// `neverBundle` is the 0.22 replacement for the deprecated `external` option.
deps: {
neverBundle: (id) => !id.startsWith('.') && !id.startsWith('~') && !path.isAbsolute(id),
},
});