Files
News-reader-pro/services/objectUrlManager.ts
2025-11-27 21:18:30 +08:00

25 lines
612 B
TypeScript

const trackedUrls = new Set<string>();
export const createTrackedObjectUrl = (blob: Blob): string => {
const url = URL.createObjectURL(blob);
trackedUrls.add(url);
return url;
};
export const revokeTrackedObjectUrl = (url?: string) => {
if (!url) return;
if (trackedUrls.has(url)) {
trackedUrls.delete(url);
}
URL.revokeObjectURL(url);
};
export const revokeMultipleObjectUrls = (urls: (string | undefined)[]) => {
urls.forEach(revokeTrackedObjectUrl);
};
export const revokeAllTrackedObjectUrls = () => {
trackedUrls.forEach(url => URL.revokeObjectURL(url));
trackedUrls.clear();
};