@sv-use/core
Version:
A collection of Svelte 5 utilities.
29 lines (28 loc) • 753 B
JavaScript
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
};
}