29 lines
707 B
TypeScript
29 lines
707 B
TypeScript
type LegacyTableColumn = {
|
|
id?: string
|
|
key?: string
|
|
label?: unknown
|
|
header?: unknown
|
|
accessorKey?: string
|
|
[key: string]: unknown
|
|
}
|
|
|
|
export const normalizeTableColumns = (columns: LegacyTableColumn[] = []) => {
|
|
return columns.map((column, index) => {
|
|
const accessorKey = typeof column.accessorKey === 'string'
|
|
? column.accessorKey
|
|
: typeof column.key === 'string'
|
|
? column.key
|
|
: undefined
|
|
|
|
const header = column.header ?? column.label ?? accessorKey ?? `column_${index}`
|
|
const id = column.id ?? accessorKey ?? (typeof header === 'string' ? header : `column_${index}`)
|
|
|
|
return {
|
|
...column,
|
|
id,
|
|
accessorKey,
|
|
header
|
|
}
|
|
})
|
|
}
|