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
 |