47 lines
1.1 KiB
JavaScript
47 lines
1.1 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/health-conditions/`,
|
|
file: `health-conditions.json`
|
|
}
|
|
|
|
try {
|
|
await fsp.rm(output.directory, { recursive: true })
|
|
} catch (e) {}
|
|
|
|
const csv = await zip.entryData('comorbidities_sum.csv').then(res => res.toString())
|
|
|
|
const rows = Papa.parse(csv, {
|
|
header: true
|
|
}).data
|
|
|
|
const results = rows.map(row => {
|
|
return {
|
|
health_condition: row.comorbidity,
|
|
sex: row.sex,
|
|
cases: +row.cases,
|
|
deaths: +row.deaths
|
|
}
|
|
}).filter(row => !!row.health_condition)
|
|
|
|
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
|