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(