@tanstack/table-core 8.5.4 → 8.5.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@tanstack/table-core",
3
3
  "author": "Tanner Linsley",
4
- "version": "8.5.4",
4
+ "version": "8.5.7",
5
5
  "description": "Headless UI for building powerful tables & datagrids for TS/JS.",
6
6
  "license": "MIT",
7
7
  "homepage": "https://github.com/tanstack/table#readme",
@@ -15,6 +15,7 @@ import { DeepKeys, DeepValue, RequiredKeys } from './utils'
15
15
  // visits: number
16
16
  // status: string
17
17
  // progress: number
18
+ // createdAt: Date
18
19
  // nested: {
19
20
  // foo: [
20
21
  // {
package/src/types.ts CHANGED
@@ -240,7 +240,7 @@ export type AccessorFnColumnDef<
240
240
 
241
241
  export type AccessorKeyColumnDef<TData extends RowData, TValue = unknown> = {
242
242
  id?: string
243
- } & ColumnIdentifiers<TData, TValue> &
243
+ } & Partial<ColumnIdentifiers<TData, TValue>> &
244
244
  ColumnDefBase<TData, TValue> & {
245
245
  accessorKey: DeepKeys<TData>
246
246
  }
package/src/utils.ts CHANGED
@@ -48,16 +48,48 @@ export type DeepKeys<T> = unknown extends T
48
48
  : object extends T
49
49
  ? string
50
50
  : T extends readonly any[] & IsTuple<T>
51
- ? AllowedIndexes<T> | DeepKeysPrefix<T, AllowedIndexes<T>>
51
+ ? AllowedIndexes<T> | DeepKeysPrefix<T>
52
52
  : T extends any[]
53
53
  ? never & 'Dynamic length array indexing is not supported'
54
+ : T extends Date
55
+ ? never
54
56
  : T extends object
55
- ? (keyof T & string) | DeepKeysPrefix<T, keyof T>
57
+ ? (keyof T & string) | DeepKeysPrefix<T>
56
58
  : never
57
59
 
58
- type DeepKeysPrefix<T, TPrefix> = TPrefix extends keyof T & (number | string)
59
- ? `${TPrefix}.${DeepKeys<T[TPrefix]> & string}`
60
- : never
60
+ type Key = string | number | symbol
61
+ type Join<L extends Key | undefined, R extends Key | undefined> = L extends
62
+ | string
63
+ | number
64
+ ? R extends string | number
65
+ ? `${L}.${R}`
66
+ : L
67
+ : R extends string | number
68
+ ? R
69
+ : undefined
70
+ type Union<
71
+ L extends unknown | undefined,
72
+ R extends unknown | undefined
73
+ > = L extends undefined
74
+ ? R extends undefined
75
+ ? undefined
76
+ : R
77
+ : R extends undefined
78
+ ? L
79
+ : L | R
80
+ type DeepKeysPrefix<
81
+ T extends object,
82
+ Prev extends Key | undefined = undefined,
83
+ Path extends Key | undefined = undefined,
84
+ PrevTypes extends object = T
85
+ > = string &
86
+ {
87
+ [K in keyof T]: T[K] extends PrevTypes | T
88
+ ? Union<Union<Prev, Path>, Join<Path, K>>
89
+ : T[K] extends object
90
+ ? DeepKeysPrefix<T[K], Union<Prev, Path>, Join<Path, K>, PrevTypes | T>
91
+ : Union<Union<Prev, Path>, Join<Path, K>>
92
+ }[keyof T]
61
93
 
62
94
  export type DeepValue<T, TProp> = T extends Record<string | number, any>
63
95
  ? TProp extends `${infer TBranch}.${infer TDeepProp}`