/** * Converts a base64 data URL to a Buffer * @param dataUrl - Base64 data URL string (e.g., "data:image/png;base64,iVBORw0KGgo...") * @returns Buffer containing the binary data, or null if input is null/undefined */ export function base64ToBuffer(dataUrl: string | null | undefined): Buffer | null { if (!dataUrl) { return null } // Extract the base64 data from the data URL // Format: data:image/png;base64, const base64Match = dataUrl.match(/^data:([A-Za-z-+\/]+);base64,(.+)$/) if (!base64Match) { // If it's not a data URL, assume it's already base64 encoded return Buffer.from(dataUrl, "base64") } const base64Data = base64Match[2] return Buffer.from(base64Data, "base64") } export default base64ToBuffer