Files
calebburke.dev/api/src/utils/base64-to-buffer.ts
T
2026-06-24 23:47:55 -07:00

25 lines
771 B
TypeScript

/**
* 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,<base64-encoded-data>
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