mirror of
https://github.com/formbricks/formbricks.git
synced 2026-01-04 21:03:02 -06:00
31 lines
842 B
TypeScript
31 lines
842 B
TypeScript
import { AsyncParser } from "@json2csv/node";
|
|
import * as xlsx from "xlsx";
|
|
import { logger } from "@formbricks/logger";
|
|
|
|
export const convertToCsv = async (fields: string[], jsonData: Record<string, string | number>[]) => {
|
|
let csv: string = "";
|
|
|
|
const parser = new AsyncParser({
|
|
fields,
|
|
});
|
|
|
|
try {
|
|
csv = await parser.parse(jsonData).promise();
|
|
} catch (err) {
|
|
logger.error(err, "Failed to convert to CSV");
|
|
throw new Error("Failed to convert to CSV");
|
|
}
|
|
|
|
return csv;
|
|
};
|
|
|
|
export const convertToXlsxBuffer = (
|
|
fields: string[],
|
|
jsonData: Record<string, string | number>[]
|
|
): Buffer => {
|
|
const wb = xlsx.utils.book_new();
|
|
const ws = xlsx.utils.json_to_sheet(jsonData, { header: fields });
|
|
xlsx.utils.book_append_sheet(wb, ws, "Sheet1");
|
|
return xlsx.write(wb, { type: "buffer", bookType: "xlsx" });
|
|
};
|