(rows: Record<string, unknown>[], declaredFields?: ChartField[])
| 172 | } |
| 173 | |
| 174 | export function inferChartDataset(rows: Record<string, unknown>[], declaredFields?: ChartField[]): ChartDataset { |
| 175 | const declared = new Map((declaredFields ?? []).map((field) => [field.name, field])) |
| 176 | const columnNames = rows.length > 0 ? Object.keys(rows[0]) : [...declared.keys()] |
| 177 | const columns = columnNames.map((name) => { |
| 178 | const declaredField = declared.get(name) |
| 179 | if (declaredField) return declaredField |
| 180 | return { |
| 181 | name, |
| 182 | type: inferFieldType(rows.map((row) => row[name])), |
| 183 | } |
| 184 | }) |
| 185 | |
| 186 | return { columns, rows } |
| 187 | } |
| 188 | |
| 189 | function aggregateByLabel( |
| 190 | rows: Record<string, unknown>[], |
no test coverage detected