Spaces:
Sleeping
Sleeping
| /** | |
| * break a base64 string into sub-components | |
| */ | |
| export function extractBase64(base64: string = ""): { | |
| mimetype: string; | |
| extension: string; | |
| data: string; | |
| buffer: Buffer; | |
| blob: Blob; | |
| } { | |
| // Regular expression to extract the MIME type and the base64 data | |
| const matches = base64.match(/^data:([A-Za-z-+/]+);base64,(.+)$/) | |
| if (!matches || matches.length !== 3) { | |
| throw new Error("Invalid base64 string") | |
| } | |
| const mimetype = matches[1] || "" | |
| const data = matches[2] || "" | |
| const buffer = Buffer.from(data, "base64") | |
| const blob = new Blob([buffer]) | |
| // this should be enough for most media formats (jpeg, png, webp, mp4) | |
| const extension = mimetype.split("/").pop() || "" | |
| return { | |
| mimetype, | |
| extension, | |
| data, | |
| buffer, | |
| blob, | |
| } | |
| } |