UNPKG

@sv-use/core

Version:

A collection of Svelte 5 utilities.

29 lines (28 loc) 753 B
import { normalizeValue } from '../__internal__/utils.svelte.js'; /** * Creates a reactive URL representing the given object. * @param object The object to generate the url for. * @see https://svelte-librarian.github.io/sv-use/docs/create-object-url */ export function createObjectUrl(object) { let current = $state(null); const _object = $derived(normalizeValue(object)); $effect(() => { if (_object) { current = URL.createObjectURL(_object); } return cleanup; }); function cleanup() { if (current) { URL.revokeObjectURL(current); } current = null; } return { get current() { return current; }, cleanup }; }