UNPKG

@tanstack/table-core

Version:

Headless UI for building powerful tables & datagrids for TS/JS.

114 lines (78 loc) 3.02 kB
--- name: api-not-found description: > Diagnose missing TanStack Table v9 exports, options, state slices, and instance methods. Load before inventing an API when code sees a type error, undefined feature method, absent object key, adapter mismatch, or v8-shaped example. metadata: type: sub-skill library: '@tanstack/table-core' library_version: '9.0.0' requires: ['core', 'table-features'] sources: - 'TanStack/table:packages/table-core/src/index.ts' - 'TanStack/table:packages/table-core/src/types/TableFeatures.ts' - 'TanStack/table:docs/framework/react/guide/migrating.md' --- This skill builds on `core` and `table-features`. Treat the installed package—not remembered docs—as exact API truth. ## Setup ```ts import { readFile } from 'node:fs/promises' const packageJson = JSON.parse( await readFile('node_modules/@tanstack/table-core/package.json', 'utf8'), ) const entrypoint = await readFile( 'node_modules/@tanstack/table-core/dist/index.d.ts', 'utf8', ) console.log(packageJson.version, entrypoint.includes('rowSortingFeature')) ``` ## Core Patterns ### Trace an export to source ```sh rg "export .*rowSortingFeature|rowSortingFeature" node_modules/@tanstack/table-core/dist/ ``` For an adapter API, start at `node_modules/@tanstack/<framework>-table/dist/index.d.ts`. ### Check feature gating before replacement ```ts const features = tableFeatures({ rowSortingFeature }) ``` If the export exists but the instance API does not, inspect `TableFeatures.ts` and the table's registry. ## Common Mistakes ### [CRITICAL] Substituting a remembered v8 API Wrong: ```ts const options = { getSortedRowModel: getSortedRowModel() } ``` Correct: ```ts const features = tableFeatures({ rowSortingFeature, sortedRowModel: createSortedRowModel(), }) ``` V9 moved row-model factories to named feature slots and renamed `get*` factories to `create*`. Source: `docs/framework/react/guide/migrating.md#row-model-factories` ### [HIGH] Mistaking omitted feature for removal Wrong: ```ts const features = tableFeatures({}) ``` Correct: ```ts const features = tableFeatures({ columnVisibilityFeature }) ``` Optional APIs and state are typed and installed from the concrete feature registry. Source: `packages/table-core/src/types/TableFeatures.ts` ### [HIGH] Discovering methods through own keys Wrong: ```ts const methods = Object.keys(row).filter((key) => key.startsWith('get')) ``` Correct: ```ts const value = row.getValue('name') const prototype = Object.getPrototypeOf(row) ``` V9 shares many instance methods through prototypes, so spread, serialization, and `Object.keys` omit them. Source: `docs/framework/react/guide/migrating.md#instance-methods-must-be-called-on-their-instance` ## API Discovery Use this order: installed `package.json` version, installed adapter `dist/index.d.ts`, installed core `dist/index.d.ts`, then the exported implementation or feature directory. Prefer `dist/**/*.d.ts` (Ember: `declarations/**/*.d.ts`; Angular: `dist/types/*.d.ts`).