Leon4gr45's picture
Upload folder using huggingface_hub (part 10)
a271c58 verified
Raw
History Blame Contribute Delete
734 Bytes
/**
* Parses a `data:` URL into a Buffer and its mime type.
*
* gpt-image models only return base64 image data (never a URL), so the image
* generation flow hands `uploadSimple` a data URL instead of a remote URL.
*
* Returns null when the value is not a valid data URL.
*/
export function parseDataUrl(
value: string
): { buffer: Buffer; mime: string } | null {
const match = /^data:([^;,]+)?(;base64)?,([\s\S]*)$/.exec(value);
if (!match) {
return null;
}
const mime = match[1] || 'application/octet-stream';
const isBase64 = !!match[2];
const data = match[3];
const buffer = isBase64
? Buffer.from(data, 'base64')
: Buffer.from(decodeURIComponent(data), 'utf-8');
return { buffer, mime };
}