first commit
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
// ═══════════════════════════════════════════════════════
|
||||
// JSON ↔ CSV Converter
|
||||
// ═══════════════════════════════════════════════════════
|
||||
let lastJsoncsvType = 'csv'; // track last conversion type for download
|
||||
|
||||
async function jsonToCsv() {
|
||||
const input = document.getElementById('jsoncsvJsonInput').value.trim();
|
||||
if (!input) return setStatus('jsoncsvStatus', 'error', 'Paste some JSON first.');
|
||||
const d = await apiPost('/api/convert/json-to-csv', { json: input });
|
||||
if (d.success) {
|
||||
document.getElementById('jsoncsvOutput').value = d.result;
|
||||
lastJsoncsvType = 'csv';
|
||||
setStatus('jsoncsvStatus', 'success', `Converted ✓ — ${d.rows} rows, ${d.columns} columns`);
|
||||
} else setStatus('jsoncsvStatus', 'error', d.error);
|
||||
}
|
||||
|
||||
async function csvToJson() {
|
||||
const input = document.getElementById('jsoncsvCsvInput').value.trim();
|
||||
if (!input) return setStatus('jsoncsvStatus', 'error', 'Paste some CSV first.');
|
||||
const d = await apiPost('/api/convert/csv-to-json', { csv: input });
|
||||
if (d.success) {
|
||||
document.getElementById('jsoncsvOutput').value = JSON.stringify(d.result, null, 2);
|
||||
lastJsoncsvType = 'json';
|
||||
setStatus('jsoncsvStatus', 'success', `Converted ✓ — ${d.result.length} records`);
|
||||
} else setStatus('jsoncsvStatus', 'error', d.error);
|
||||
}
|
||||
|
||||
function downloadJsoncsvOutput() {
|
||||
const output = document.getElementById('jsoncsvOutput').value;
|
||||
if (!output) return setStatus('jsoncsvStatus', 'error', 'Nothing to download.');
|
||||
const ext = lastJsoncsvType === 'csv' ? 'csv' : 'json';
|
||||
const mime = lastJsoncsvType === 'csv' ? 'text/csv' : 'application/json';
|
||||
const blob = new Blob([output], { type: mime });
|
||||
const a = document.createElement('a');
|
||||
a.href = URL.createObjectURL(blob);
|
||||
a.download = `converted.${ext}`;
|
||||
a.click();
|
||||
URL.revokeObjectURL(a.href);
|
||||
setStatus('jsoncsvStatus', 'success', 'Downloaded ✓');
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user