The Typert workspace pass scans the analyzer's symbol table, and every symbol asked `registrationForFile`/`packageNameForFile` for its owning package. Both looked up the real path and then scanned every registration with `isWithin`, and `isWithin` re-ran `path.resolve` through `realPath` for both arguments on each call. A CPU profile of the host pass put 17.0 s of the 30.9 s sampled in that scan, almost all of it in `realPath`/`resolve`/`existsSync`. The registration set and the analyzer's face are fixed for the analyzer's lifetime, so each source path's answer cannot change: memoize both lookups per analyzer. `resolve` depends only on the requested path and the process working directory, so memoize the normalization step too; the existing canonical-path cache keeps its "existing paths only" rule. tsdown host pass, interleaved A/B: 39.89/37.18 s -> 25.70/25.06 s. Isolated generator phase: discover 8.69/8.59 s -> 7.33/7.44 s, generate 17.19/16.96 s -> 4.21/4.21 s. Every emitted `typert.*` file hashes identically before and after each run.
description, kind
| description | kind |
|---|---|
| The Typert group map: the build-time type-graph generator, runtime registry, Loader integration, and shared Remote protocol that enable typed Host-to-Client calls. | package-group |
packages/typert
English | 中文
Summary
With the Typert group, Client environments can call Host capabilities as typed methods and share generated schemas and reflection without hand-written wire code. A build-time generator turns source type declarations into compiler-independent models and runtime artifacts, a runtime registry stores those artifacts, and a Loader integration registers them automatically in Loader compositions. A shared protocol package supplies the Remote-call declarations — decorators, wire descriptors, codecs, and provider contracts — that business packages, generated artifacts, the Host Gateway, and the Client API all consume. This page maps the four packages; each package README owns its configuration, usage, and limits.
Table of Contents
Packages
| Package | Role | ctx key |
|---|---|---|
generator/ |
Analyzes source types at build time and generates the reflection, schemas, and Remote descriptors that runtimes load | — |
loader/ |
Auto-registers generated Typert artifacts from Loader compositions into the runtime registry | consumes ctx.loader and ctx.typert |
protocol/ |
Declares the Remote decorators, wire descriptors, codecs, and provider contracts shared by Host and Client | — |
registry/ |
Stores generated package reflection and live Zod schemas at runtime, plus lookup and Context provider registries | ctx.typert |
Related documentation
- Typert subsystem reference — the literal public contracts recorded from protocol and registry types.
- API Gateway reference — how the generated Remote descriptors become running Host-to-Client calls.
- Remote-call Agent Note — the architecture and transport decisions behind Remote calls.
- Package workspace map — every group in the workspace and what each owns.
Dev Note
Working context for maintainers — click to expand
None.