CodeVetter · Repo Unpack · System map
TanStack/table
The system centers on a framework-independent table engine, with adapters supplying rendering and reactivity integration. Table state resides in an atom graph, while row-model factories derive the data presented to renderers. Workers and devtools introduce separate execution and inspection boundaries without turning the core into a backend service. Distribution uses workspace packages with explicit ESM exports, and examples provide independently runnable application surfaces.
- The public product is a headless datagrid library with adapters for React, Preact, Octane, Vue, Solid, Svelte, Angular, Ember, Lit, and Alpine; application authors supply markup, components, and styles.
- The React entrypoint re-exports table-core and adds FlexRender, Subscribe, createTableHook, contexts, and useTable; the core entrypoint exposes constructors, types, helpers, features, and row-model factories.
- constructTable owns feature registration, resolved options, writable baseAtoms, readonly effective atoms, and a shallow-compared aggregate store; initial state determines the registered state keys.
- Row processing is a lazy factory pipeline: core → filtering → grouping → sorting → expansion → pagination. Each optional stage can return its predecessor when its factory is absent or its manual mode is enabled.
- The experimental worker integration has an application-created dedicated Worker and a shadow table inside that worker; registered processing stages share a handle and communicate through data/process/result messages.
- Shared devtools are implemented with Solid and lazily loaded through constructCoreClass; framework registration adapters connect tables to a key-based registry, while documented defaults disable live tools in production.
- The private root workspace pins pnpm@12.4.1 and requires Node >=20. Nx coordinates affected or all-package builds and checks, while pnpm-workspace.yaml links examples and library packages to local workspace versions.
- table-core publishes explicit subpath exports and builds unbundled ESM plus declarations before rewriting its declarations. Inspected Alpine/Lit examples use Vite on port 7777; the listed Octane examples additionally install the Octane compiler plugin.