Files
FastGPT/packages/service/worker/readFile/extension/csv.ts
Archer 7494ce8453 perf: async read file (#4978)
* perf: async read file

* package

* doc
2025-06-08 18:46:36 +08:00

26 lines
700 B
TypeScript

import Papa from 'papaparse';
import { type ReadRawTextByBuffer, type ReadFileResponse } from '../type';
import { readFileRawText } from './rawText';
// 加载源文件内容
export const readCsvRawText = async (params: ReadRawTextByBuffer): Promise<ReadFileResponse> => {
const { rawText } = await readFileRawText(params);
const csvArr = Papa.parse(rawText).data as string[][];
const header = csvArr[0];
// format to md table
const formatText = `| ${header.join(' | ')} |
| ${header.map(() => '---').join(' | ')} |
${csvArr
.slice(1)
.map((row) => `| ${row.map((item) => item.replace(/\n/g, '\\n')).join(' | ')} |`)
.join('\n')}`;
return {
rawText,
formatText
};
};