svelte-query-params
Version:
A lightweight, dead-simple, type-safe reactive query parameter store built for Svelte 5.
35 lines (34 loc) • 826 B
JavaScript
// src/lib/adapters/sveltekit.ts
import { browser, building } from "$app/environment";
import { goto } from "$app/navigation";
import { redirect } from "@sveltejs/kit";
var DUMMY_URL = new URL("https://kit.svelte.dev");
function sveltekit(options = {}) {
const { replace = false } = options;
return {
isBrowser: () => browser,
browser: {
read() {
if (building) return DUMMY_URL;
return window.location;
},
save(search, hash) {
const searchString = search.length ? search : "?";
goto(`${searchString}${hash}`, {
keepFocus: true,
noScroll: true,
replaceState: replace
});
}
},
server: {
save(search) {
if (building) return;
redirect(307, search);
}
}
};
}
export {
sveltekit
};