Skip to content

Commit 3c16d7a

Browse files
committed
disable feature inference for better ts performance for now
1 parent bc69a07 commit 3c16d7a

30 files changed

+288
-252
lines changed

packages/table-core/src/core/headers/buildHeaderGroups.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ export function buildHeaderGroups<
5454
depth,
5555
id: [headerFamily, `${depth}`].filter(Boolean).join('_'),
5656
headers: [],
57-
}
57+
} as any
5858

5959
// The parent columns we're going to scan next
6060
const pendingParentHeaders: Array<Header<TFeatures, TData, TValue>> = []

packages/table-core/src/core/row-models/coreRowModelsFeature.types.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,12 @@ export interface RowModel<
1818
rowsById: Record<string, Row<TFeatures, TData>>
1919
}
2020

21+
export interface CreateRowModel_Plugins {}
22+
2123
export interface CreateRowModel_Core<
2224
TFeatures extends TableFeatures,
2325
TData extends RowData,
24-
> {
26+
> extends CreateRowModel_Plugins {
2527
/**
2628
* This required option is a factory for a function that computes and returns the core row model for the table.
2729
* [API Docs](https://tanstack.com/table/v8/docs/api/core/table#getcorerowmodel)
@@ -32,10 +34,12 @@ export interface CreateRowModel_Core<
3234
) => () => RowModel<TFeatures, TData>
3335
}
3436

37+
export interface CachedRowModel_Plugins {}
38+
3539
export interface CachedRowModel_Core<
3640
TFeatures extends TableFeatures,
3741
TData extends RowData,
38-
> {
42+
> extends CachedRowModel_Plugins {
3943
coreRowModel: () => RowModel<TFeatures, TData>
4044
}
4145

packages/table-core/src/core/table/constructTable.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ export function constructTable<
3838
const table = {} as unknown as Table<TFeatures, TData>
3939

4040
const defaultOptions = featuresList.reduce((obj, feature) => {
41-
return Object.assign(obj, feature.getDefaultTableOptions?.(table))
41+
return Object.assign(obj, feature.getDefaultTableOptions?.(table as any))
4242
}, {}) as TableOptions<TFeatures, TData>
4343

4444
const initialState = getInitialTableState(_features, options.initialState)
@@ -57,7 +57,7 @@ export function constructTable<
5757
Object.assign(table, coreInstance)
5858

5959
for (const feature of featuresList) {
60-
feature.constructTableAPIs?.(table)
60+
feature.constructTableAPIs?.(table as any)
6161
}
6262

6363
return table

packages/table-core/src/features/column-faceting/columnFacetingFeature.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,16 @@ import {
44
column_getFacetedRowModel,
55
column_getFacetedUniqueValues,
66
} from './columnFacetingFeature.utils'
7-
import type { Column_ColumnFaceting } from './columnFacetingFeature.types'
8-
import type { RowData } from '../../types/type-utils'
9-
import type { TableFeature, TableFeatures } from '../../types/TableFeatures'
7+
import type { TableFeature } from '../../types/TableFeatures'
8+
// import type { CachedRowModel_Faceted, Column_ColumnFaceting, CreateRowModel_Faceted } from './columnFacetingFeature.types'
109

1110
/**
1211
* The Column Faceting feature adds column faceting APIs to the column objects.
1312
*/
1413
export const columnFacetingFeature: TableFeature<{
15-
Column: Column_ColumnFaceting<TableFeatures, RowData>
14+
// Column: Column_ColumnFaceting<TableFeatures, RowData>
15+
// CreateRowModels: CreateRowModel_Faceted<TableFeatures, RowData>
16+
// CachedRowModel: CachedRowModel_Faceted<TableFeatures, RowData>
1617
}> = {
1718
constructColumnAPIs: (column) => {
1819
assignAPIs(column, [

packages/table-core/src/features/column-filtering/columnFilteringFeature.ts

Lines changed: 23 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -11,16 +11,18 @@ import {
1111
table_resetColumnFilters,
1212
table_setColumnFilters,
1313
} from './columnFilteringFeature.utils'
14-
import type { RowData } from '../../types/type-utils'
15-
import type { TableFeature, TableFeatures } from '../../types/TableFeatures'
16-
import type {
17-
ColumnDef_ColumnFiltering,
18-
Column_ColumnFiltering,
19-
Row_ColumnFiltering,
20-
TableOptions_ColumnFiltering,
21-
TableState_ColumnFiltering,
22-
Table_ColumnFiltering,
23-
} from './columnFilteringFeature.types'
14+
import type { TableFeature } from '../../types/TableFeatures'
15+
// import type {
16+
// CachedRowModel_Filtered,
17+
// ColumnDef_ColumnFiltering,
18+
// Column_ColumnFiltering,
19+
// CreateRowModel_Filtered,
20+
// RowModelFns_ColumnFiltering,
21+
// Row_ColumnFiltering,
22+
// TableOptions_ColumnFiltering,
23+
// TableState_ColumnFiltering,
24+
// Table_ColumnFiltering,
25+
// } from './columnFilteringFeature.types'
2426

2527
/**
2628
* The Column Filtering feature adds column filtering state and APIs to the table, row, and column objects.
@@ -30,12 +32,15 @@ import type {
3032
* [Guide](https://tanstack.com/table/v8/docs/guide/column-filtering)
3133
*/
3234
export const columnFilteringFeature: TableFeature<{
33-
Column: Column_ColumnFiltering<TableFeatures, RowData>
34-
ColumnDef: ColumnDef_ColumnFiltering<TableFeatures, RowData>
35-
Row: Row_ColumnFiltering<TableFeatures, RowData>
36-
Table: Table_ColumnFiltering
37-
TableOptions: TableOptions_ColumnFiltering<TableFeatures, RowData>
38-
TableState: TableState_ColumnFiltering
35+
// CachedRowModel: CachedRowModel_Filtered<TableFeatures, RowData>
36+
// Column: Column_ColumnFiltering<TableFeatures, RowData>
37+
// ColumnDef: ColumnDef_ColumnFiltering<TableFeatures, RowData>
38+
// CreateRowModels: CreateRowModel_Filtered<TableFeatures, RowData>
39+
// Row: Row_ColumnFiltering<TableFeatures, RowData>
40+
// RowModelFns: RowModelFns_ColumnFiltering<TableFeatures, RowData>
41+
// Table: Table_ColumnFiltering
42+
// TableOptions: TableOptions_ColumnFiltering<TableFeatures, RowData>
43+
// TableState: TableState_ColumnFiltering
3944
}> = {
4045
getInitialState: (initialState) => {
4146
return {
@@ -85,8 +90,8 @@ export const columnFilteringFeature: TableFeature<{
8590
},
8691

8792
constructRowAPIs: (row) => {
88-
row.columnFilters = {}
89-
row.columnFiltersMeta = {}
93+
;(row as any).columnFilters = {}
94+
;(row as any).columnFiltersMeta = {}
9095
},
9196

9297
constructTableAPIs: (table) => {

packages/table-core/src/features/column-filtering/columnFilteringFeature.types.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ export interface ResolvedColumnFilter<
3535
resolvedValue: unknown
3636
}
3737

38-
export interface TableFns_ColumnFiltering<
38+
export interface RowModelFns_ColumnFiltering<
3939
TFeatures extends TableFeatures,
4040
TData extends RowData,
4141
> {

packages/table-core/src/features/column-filtering/columnFilteringFeature.utils.ts

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import { functionalUpdate, isDev, isFunction } from '../../utils'
2-
import { filterFn_weakEquals } from '../../fns/filterFns'
32
import type { CellData, RowData, Updater } from '../../types/type-utils'
43
import type { TableFeatures } from '../../types/TableFeatures'
54
import type { Table_Internal } from '../../types/Table'
@@ -58,7 +57,7 @@ export function column_getFilterFn<
5857
column: Column<TFeatures, TData, TValue> & {
5958
columnDef: ColumnDef_ColumnFiltering<TFeatures, TData>
6059
},
61-
): FilterFn<TFeatures, TData> {
60+
): FilterFn<TFeatures, TData> | undefined {
6261
let filterFn = null
6362
const filterFns = column.table._rowModelFns.filterFns as
6463
| Record<string, FilterFn<TFeatures, TData>>
@@ -69,13 +68,10 @@ export function column_getFilterFn<
6968
? column_getAutoFilterFn(column)
7069
: filterFns?.[column.columnDef.filterFn as string]
7170

72-
if (!filterFn) {
73-
if (isDev) {
74-
console.warn(
75-
`Could not find a valid 'column.filterFn' for column with the ID: ${column.id}. Using default filterFn: 'weakEquals'`,
76-
)
77-
}
78-
filterFn = filterFn_weakEquals
71+
if (isDev && !filterFn) {
72+
console.warn(
73+
`Could not find a valid 'column.filterFn' for column with the ID: ${column.id}.`,
74+
)
7975
}
8076

8177
return filterFn

packages/table-core/src/features/column-filtering/createFilteredRowModel.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ function _createFilteredRowModel<
7272
return
7373
}
7474

75-
const filterFn = column_getFilterFn(column)
75+
const filterFn = column_getFilterFn(column)!
7676

7777
resolvedColumnFilters.push({
7878
id: columnFilter.id,

packages/table-core/src/features/column-grouping/columnGroupingFeature.ts

Lines changed: 24 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -16,31 +16,36 @@ import {
1616
table_resetGrouping,
1717
table_setGrouping,
1818
} from './columnGroupingFeature.utils'
19-
import type { CellData, RowData } from '../../types/type-utils'
20-
import type { TableFeature, TableFeatures } from '../../types/TableFeatures'
21-
import type {
22-
Cell_ColumnGrouping,
23-
ColumnDef_ColumnGrouping,
24-
Column_ColumnGrouping,
25-
Row_ColumnGrouping,
26-
TableOptions_ColumnGrouping,
27-
TableState_ColumnGrouping,
28-
Table_ColumnGrouping,
29-
} from './columnGroupingFeature.types'
19+
import type { TableFeature } from '../../types/TableFeatures'
20+
// import type {
21+
// CachedRowModel_Grouped,
22+
// Cell_ColumnGrouping,
23+
// ColumnDef_ColumnGrouping,
24+
// Column_ColumnGrouping,
25+
// CreateRowModel_Grouped,
26+
// RowModelFns_ColumnGrouping,
27+
// Row_ColumnGrouping,
28+
// TableOptions_ColumnGrouping,
29+
// TableState_ColumnGrouping,
30+
// Table_ColumnGrouping,
31+
// } from './columnGroupingFeature.types'
3032

3133
/**
3234
* The (Column) Grouping feature adds column grouping state and APIs to the table, row, column, and cell objects.
3335
* [API Docs](https://tanstack.com/table/v8/docs/api/features/column-grouping)
3436
* [Guide](https://tanstack.com/table/v8/docs/guide/column-grouping)
3537
*/
3638
export const columnGroupingFeature: TableFeature<{
37-
Cell: Cell_ColumnGrouping
38-
Column: Column_ColumnGrouping<TableFeatures, RowData>
39-
ColumnDef: ColumnDef_ColumnGrouping<TableFeatures, RowData, CellData>
40-
Row: Row_ColumnGrouping
41-
Table: Table_ColumnGrouping<TableFeatures, RowData>
42-
TableOptions: TableOptions_ColumnGrouping
43-
TableState: TableState_ColumnGrouping
39+
// CachedRowModel: CachedRowModel_Grouped<TableFeatures, RowData>
40+
// Cell: Cell_ColumnGrouping
41+
// Column: Column_ColumnGrouping<TableFeatures, RowData>
42+
// ColumnDef: ColumnDef_ColumnGrouping<TableFeatures, RowData, CellData>
43+
// CreateRowModels: CreateRowModel_Grouped<TableFeatures, RowData>
44+
// Row: Row_ColumnGrouping
45+
// RowModelFns: RowModelFns_ColumnGrouping<TableFeatures, RowData>
46+
// Table: Table_ColumnGrouping<TableFeatures, RowData>
47+
// TableOptions: TableOptions_ColumnGrouping
48+
// TableState: TableState_ColumnGrouping
4449
}> = {
4550
getInitialState: (initialState) => {
4651
return {
@@ -104,7 +109,7 @@ export const columnGroupingFeature: TableFeature<{
104109
},
105110

106111
constructRowAPIs: (row) => {
107-
row._groupingValuesCache = {}
112+
;(row as any)._groupingValuesCache = {}
108113

109114
assignAPIs(row, [
110115
{

packages/table-core/src/features/column-grouping/columnGroupingFeature.types.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ export interface TableState_ColumnGrouping {
1818
grouping: GroupingState
1919
}
2020

21-
export interface TableFns_ColumnGrouping<
21+
export interface RowModelFns_ColumnGrouping<
2222
TFeatures extends TableFeatures,
2323
TData extends RowData,
2424
> {

0 commit comments

Comments
 (0)