apix/static/modules/utils.js
2025-11-22 00:23:18 +07:00

26 lines
846 B
JavaScript

export function withCacheBuster(url) {
const separator = url.includes('?') ? '&' : '?';
return `${url}${separator}t=${new Date().getTime()}`;
}
export function clamp(value, min, max) {
return Math.min(Math.max(value, min), max);
}
export function dataUrlToBlob(dataUrl) {
try {
const [prefix, base64] = dataUrl.split(',');
const mimeMatch = prefix.match(/:(.*?);/);
const mime = mimeMatch ? mimeMatch[1] : 'image/png';
const binary = atob(base64);
const len = binary.length;
const buffer = new Uint8Array(len);
for (let i = 0; i < len; i++) {
buffer[i] = binary.charCodeAt(i);
}
return new Blob([buffer], { type: mime });
} catch (error) {
console.warn('Unable to convert cached image to blob', error);
return null;
}
}