( data: readonly T[], getRowKey: (row: T, index: number) => string, )
| 363 | * @returns Array of row keys |
| 364 | */ |
| 365 | export function extractRowKeys<T>( |
| 366 | data: readonly T[], |
| 367 | getRowKey: (row: T, index: number) => string, |
| 368 | ): readonly string[] { |
| 369 | const keys = new Array<string>(data.length); |
| 370 | for (let i = 0; i < data.length; i++) { |
| 371 | const row = data[i]; |
| 372 | if (row !== undefined) { |
| 373 | keys[i] = getRowKey(row, i); |
| 374 | } else { |
| 375 | keys[i] = `__empty_${i}`; |
| 376 | } |
| 377 | } |
| 378 | return Object.freeze(keys); |
| 379 | } |
| 380 | |
| 381 | /** |
| 382 | * Build an index map from row keys for O(1) lookups. |
no test coverage detected