epicenter icon indicating copy to clipboard operation
epicenter copied to clipboard

refactor: created TSConfig hierarchy

Open colecrouter opened this issue 2 months ago • 0 comments

What changed:

  • Centralized common TypeScript settings in tsconfig.base.json and removed redundant fields from child configs.
  • Standardized a single cross-workspace UI alias in base: "#/" → "packages/ui/src/".
  • Configured SvelteKit apps to use the same alias via kit.alias:
    • apps/whispering/svelte.config.js
    • apps/sh/svelte.config.js
    • apps/epicenter/svelte.config.js
  • Preserved $lib by not defining tsconfig "paths" in SvelteKit projects; SvelteKit’s generator remains the source of truth.
  • For NodeNext libraries, set "moduleResolution": "NodeNext" to avoid TS5095 when inheriting bundler settings.

Intended usage

  • Non‑SvelteKit workspaces import UI internals with "#/…".
  • SvelteKit apps also import with "#/…"; alias is provided by kit.alias (see links above).
  • Keep using $lib inside SvelteKit for app-local imports.

Rationale

  • Consistency - no surprises
  • Extensibility - future shared changes
  • Reliability - svelte-check aligns with IDE, $lib remains intact
  • Clarity - child tsconfigs only declare environment/build specifics
  • Minimality: smallest config surface

Scope

  • Config-only changes.
  • mcp-adapters excluded per request.
  • Pinned TypeScript 5.8.3 for checks.

colecrouter avatar Sep 24 '25 20:09 colecrouter