@opengis/bi
Version:
BI data visualization module
18 lines (15 loc) • 1.1 kB
JavaScript
import path from 'node:path';
import { mkdir, readFile, writeFile } from 'node:fs/promises';
export default async function convertJSONToCSV({
filepathJSON, send = () => { }, delimiter = ';',
}) {
if (!filepathJSON) return null;
const rows = JSON.parse(await readFile(filepathJSON) || '{}');
const values = rows.map((row) => Object.values(row).map((el) => `${el};`));
values.unshift(Object.keys(rows[0]).map((el) => `${el};`));
send('Конвертація успішно завершена. Формування файлу...');
await mkdir(path.dirname(filepathJSON), { recursive: true });
await writeFile(filepathJSON.replace('.json', '.csv'), `\ufeff${values.join('\n').replace(/;,/g, delimiter)}`, 'utf8');
send('Файл успішно сформовано. Оновіть сторінку або натисніть кнопку ще раз для завантаження. ', 1);
return { message: 'Файл успішно сформовано. Натистіть кнопку ще раз для завантаження даних', status: 200 };
}