UNPKG

@tanstack/charts

Version:

<div align="center"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://tanstack.com/api/readme/charts.png?theme=dark" /> <source media="(prefers-color-scheme: light)" srcset="https://tanstack.com/

32 lines (31 loc) 832 B
import { materializeGroups, toArray } from "./transform-internal.js"; import { assertTransformOutputNames, prepareOutputs, reducePreparedOutputs } from "./transform-reduce-internal.js"; function groupBy(source, options) { const data = toArray(source); const groups = materializeGroups(data, options.by); const groupNames = groups[0] ? Object.keys(groups[0].group) : []; assertTransformOutputNames( options.outputs, [...groupNames, "source", "sourceIndexes"], "groupBy" ); const preparedOutputs = prepareOutputs(data, options.outputs); return groups.map(({ group, indexes }) => ({ ...group, source: indexes.map((index) => data[index]), sourceIndexes: indexes, ...reducePreparedOutputs( data, indexes, group, preparedOutputs ) })); } export { groupBy };