From a95effbc835e3e1807d73db1d470ccff60afdb55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Krzeslak?= Date: Thu, 22 Oct 2026 13:51:27 +0200 Subject: [PATCH] fix(converters): improve CSV header generation and FFMPEG argument parsing --- src/converters/ffmpeg.ts | 4 ++-- src/converters/vcf.ts | 12 +++++++----- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/converters/ffmpeg.ts b/src/converters/ffmpeg.ts index 8d5709a6..926b62d3 100644 --- a/src/converters/ffmpeg.ts +++ b/src/converters/ffmpeg.ts @@ -770,9 +770,9 @@ export async function convert( } // Parse FFMPEG_ARGS environment variable into array - const ffmpegArgs = process.env.FFMPEG_ARGS ? process.env.FFMPEG_ARGS.split(/\s+/) : []; + const ffmpegArgs = process.env.FFMPEG_ARGS ? process.env.FFMPEG_ARGS.split(/\s+/).filter(Boolean) : []; const ffmpegOutputArgs = process.env.FFMPEG_OUTPUT_ARGS - ? process.env.FFMPEG_OUTPUT_ARGS.split(/\s+/) + ? process.env.FFMPEG_OUTPUT_ARGS.split(/\s+/).filter(Boolean) : []; return new Promise((resolve, reject) => { diff --git a/src/converters/vcf.ts b/src/converters/vcf.ts index 2fff8ed8..d84094c0 100644 --- a/src/converters/vcf.ts +++ b/src/converters/vcf.ts @@ -46,12 +46,14 @@ export function parseVCF(data: string): Record[] { export function toCSV(data: Record[]): string { if (!data.length) return ""; - const first = data[0]; - if (!first) return ""; - const headers = Object.keys(first); + const headers = new Set(); + for (const row of data) { + Object.keys(row).forEach((key) => headers.add(key)); + } + const headerArray = Array.from(headers); const escape = (str: string) => `"${str.replace(/"/g, '""')}"`; - const rows = data.map((row) => headers.map((h) => escape(row[h] || "")).join(",")); - return [headers.join(","), ...rows].join("\n"); + const rows = data.map((row) => headerArray.map((h) => escape(row[h] || "")).join(",")); + return [headerArray.join(","), ...rows].join("\n"); } export async function convert(