Files
glchat/web/src/lib/objectUrl.ts
T

27 lines
898 B
TypeScript
Raw Normal View History

/**
* Ссылки на локальные файлы (превью до ответа сервера). `URL.createObjectURL`
* есть не во всех окружениях (jsdom, урезанные webview) и может бросить
* исключение, поэтому все вызовы идут через эти обёртки.
*/
export function safeObjectUrl(source: Blob): string | null {
if (typeof URL.createObjectURL !== 'function') {
return null;
}
try {
return URL.createObjectURL(source);
} catch {
return null;
}
}
export function revokeObjectUrl(url: string | null | undefined): void {
if (url === null || url === undefined || typeof URL.revokeObjectURL !== 'function') {
return;
}
try {
URL.revokeObjectURL(url);
} catch {
// Ссылка уже недействительна — освобождать нечего.
}
}