import { inferSchema, initParser } from 'udsv'; export function fileToBase64(file: File) { return new Promise((resolve, reject) => { const reader = new FileReader(); reader.addEventListener('error', reject); reader.addEventListener('load', () => resolve(reader.result as string)); reader.readAsDataURL(file); }); } export async function csvToData>( file: File, ): Promise { const stream = file.stream().pipeThrough(new TextDecoderStream()); const reader = stream.getReader(); const { value, done } = await reader.read(); if (value) { const parser = initParser(inferSchema(value)); const data = parser.typedObjs(value); return data; } if (done) return null; return null; }