2022-01-01 13:55:12 -05:00

50 lines
1.2 KiB
JavaScript

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