UNPKG

lean4-code-actions

Version:

Refactorings and snippets for Lean 4

29 lines (24 loc) 836 B
import papaparse, { ParseConfig } from 'papaparse' import voca from 'voca' import { assertEq } from './assert' const { camelCase } = voca const { parse: parseOriginal } = papaparse export async function parseCSV<T = unknown>(contents: string, config: ParseConfig<T> = {}) { const result = await parseOriginal<T>(contents.trim(), { header: true, transformHeader: camelCase, delimiter: ',', ...config, }) assertEq(result.errors, [], 'result.errors', '[]') return result.data } export function getPapaparseDefaultConfig<T = unknown, TInput = undefined>(): ParseConfig<T, TInput> { return { header: true, transformHeader: camelCase, } } export const transformHeaderFromRecord = (headers: Record<string, string>) => (header: string, index: number) => { return headers[header] || camelCase(header) }