// @ts-ignore import Papa from 'papaparse'; export async function decode( blob: Blob, header: Record any> ): Promise[]> { const data = await new Promise(resolve => { Papa.parse(blob, { header: true, complete: (result: any) => resolve(result.data) }); }) as Record[]; const result: Record[] = []; for (const i of data) { let element = {} as Record | null; for (const [k, v] of Object.entries(header)) { if (!(k in i)) { element = null; break; } (element as any)[k] = (v as any)(i[k]); } if (element) result.push(element); } return result; } export function encode(data: Record[]): Blob { const csvData = Papa.unparse(data); return new Blob([csvData], {type: 'text/csv'}); }