diff --git a/packages/table-core/src/features/ColumnFiltering.ts b/packages/table-core/src/features/ColumnFiltering.ts index 3ac8e03527..18e558f004 100644 --- a/packages/table-core/src/features/ColumnFiltering.ts +++ b/packages/table-core/src/features/ColumnFiltering.ts @@ -404,22 +404,27 @@ export const ColumnFiltering: TableFeature = { return table._getFilteredRowModel() } - Object.assign(getRowProto(table), { - get columnFilters() { - // Lazy-init the backing cache on the instance so we don't take up memory for rows that don't need it - return (( - this as { _columnFilters?: ColumnFiltersRow['columnFilters'] } - )._columnFilters ??= {}) + // Lazy-init the backing caches on the instance so we don't take up memory for rows that don't need it + Object.defineProperties(getRowProto(table), { + columnFilters: { + get() { + return (this._columnFilters ??= {}) + }, + set(value) { + this._columnFilters = value + }, + enumerable: true, }, - get columnFiltersMeta() { - // Lazy-init the backing cache on the instance so we don't take up memory for rows that don't need it - return (( - this as { - _columnFiltersMeta?: ColumnFiltersRow['columnFiltersMeta'] - } - )._columnFiltersMeta ??= {}) + columnFiltersMeta: { + get() { + return (this._columnFiltersMeta ??= {}) + }, + set(value) { + this._columnFiltersMeta = value + }, + enumerable: true, }, - } as ColumnFiltersRow & Row) + }) }, } diff --git a/packages/table-core/src/features/ColumnGrouping.ts b/packages/table-core/src/features/ColumnGrouping.ts index 72ca0992b9..0240dfe25d 100644 --- a/packages/table-core/src/features/ColumnGrouping.ts +++ b/packages/table-core/src/features/ColumnGrouping.ts @@ -354,16 +354,15 @@ export const ColumnGrouping: TableFeature = { return table._getGroupedRowModel() } - Object.assign(getRowProto(table), { - get _groupingValuesCache() { + Object.defineProperty(getRowProto(table), '_groupingValuesCache', { + get() { // Lazy-init the backing cache on the instance so we don't take up memory for rows that don't need it - return (( - this as { - __groupingValuesCache?: GroupingRow['_groupingValuesCache'] - } - ).__groupingValuesCache ??= {}) + return (this.__groupingValuesCache ??= {}) }, + enumerable: true, + }) + Object.assign(getRowProto(table), { getIsGrouped() { return !!this.groupingColumnId },