Spaces:
Runtime error
Runtime error
File size: 1,111 Bytes
e43a4a9 8b5482f e43a4a9 8b5482f e43a4a9 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | const BASE64_PATTERN = /^[A-Za-z0-9+/=]+$/;
export function isDataUrl(value) {
return typeof value === "string" && value.startsWith("data:");
}
export function parseDataUrl(value) {
if (!isDataUrl(value)) {
return null;
}
const commaIndex = value.indexOf(",");
if (commaIndex === -1) {
return null;
}
const metadata = value.slice(5, commaIndex);
const base64 = value.slice(commaIndex + 1);
const metadataParts = metadata.split(";");
const mimeType = metadataParts[0] || "";
const isBase64 = metadataParts.slice(1).some((part) => part.toLowerCase() === "base64");
if (!mimeType || !isBase64 || !base64) {
return null;
}
return {
mimeType,
base64
};
}
export function isLikelyBase64(value) {
if (typeof value !== "string") {
return false;
}
const compact = value.replace(/\s+/g, "");
return compact.length > 0 && compact.length % 4 === 0 && BASE64_PATTERN.test(compact);
}
export function stripDataUrl(value) {
if (!isDataUrl(value)) {
return value;
}
const parsed = parseDataUrl(value);
return parsed ? parsed.base64 : value;
}
|