import mkdirp from 'mkdirp' import path from 'path' import fsp from 'fs/promises' import Papa from 'papaparse' import { getCounty } from '../../util.js' async function processSingleZip ({ date, zip }) { const output = { directory: `./public/data/risk/age/`, file: `age.json` } try { await fsp.rm(output.directory, { recursive: true }) } catch (e) {} const csv = await zip.entryData('epicurve_age_group_rpt_date.csv').then(res => res.toString()) const rows = Papa.parse(csv, { header: true }).data const results = rows.map(row => { return { age_group: row.age_group, report_date: row.report_date, cases: +row.cases, hospitalizations: +row.confirmed_case_hospitalization, deaths: +row.deaths, total_cases: +row.cases_cum, total_deaths: +row.death_cum } }).filter(row => !!row.report_date) const data = { segment: { }, headers: Object.keys(results[0]), rows: results.map(row => Object.values(row)) } await mkdirp(output.directory) await fsp.writeFile(path.join(output.directory, output.file), JSON.stringify(data)) } function process (zips) { return processSingleZip(zips.at(-1)) } export default process