generated from alphane/template
25 lines
771 B
TypeScript
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
|