HaloStack Docs
Open App
Config

TypeScript

The shared, strict tsconfig bases that every package in the monorepo extends.

@halostack/typescript is the single source of truth for strict TypeScript settings across the monorepo. Rather than each package maintaining its own list of compiler flags, every tsconfig.json simply extends one of the bases defined here — so this package is configuration only, with no source code of its own. It's referenced as "@halostack/typescript": "*" (a config dependency, not a workspace:* code dependency).

The bases

There are three bases, layered so each builds on the one below it. Server and library packages extend the strict core; React libraries add JSX; and the web app adds the Vite- and bundler-specific flags on top.

A consuming package's tsconfig.json typically does little more than point at a base and declare what to include:

Conventions

Change a flag here, never per-package. If a rule should hold everywhere, edit the base so that all packages inherit it automatically; individual packages should only set things like include and paths.

Strict mode is non-negotiable — these bases are precisely why as any and @ts-ignore are banned repo-wide. The one sanctioned per-package addition is for testing: packages that run bun:test add types: ["bun"] locally (alongside @types/node) so the test globals resolve.