Files
lynchmark.com/tests/6_csv_processor/outputs_gemini/gemini-3-pro-preview TEMP_1.4.js
T

17 lines
515 B
JavaScript

export const processCSV = async (str, {
filterColumn: fc,
filterValue: fv,
groupBy: gb,
aggregateColumn: ac,
operation: op
}) => {
const { csvParse, rollups, sum, mean } = await import('https://cdn.jsdelivr.net/npm/d3@7/+esm')
const val = d => +d[ac] || 0
return rollups(
csvParse(str).filter(d => d[fc] == fv),
g => op === 'count' ? g.length : op === 'sum' ? sum(g, val) : mean(g, val) || 0,
d => d[gb]
).map(([k, r]) => ({ [gb]: k, result: r }))
}
export default processCSV;