UNPKG

@sveltejs/kit

Version:

Here be dragons, etc etc.

79 lines (67 loc) 1.53 kB
import { getContext } from 'svelte'; // const ssr = (import.meta as any).env.SSR; const ssr = typeof window === 'undefined'; // TODO why doesn't previous line work in build? // TODO remove this (for 1.0? after 1.0?) let warned = false; function stores() { if (!warned) { console.error('stores() is deprecated; use getStores() instead'); warned = true; } return getStores(); } const getStores = () => { const stores = getContext('__svelte__'); return { page: { subscribe: stores.page.subscribe }, navigating: { subscribe: stores.navigating.subscribe }, get preloading() { console.error('stores.preloading is deprecated; use stores.navigating instead'); return { subscribe: stores.navigating.subscribe }; }, session: stores.session }; }; const page = { subscribe(fn) { const store = getStores().page; return store.subscribe(fn); } }; const navigating = { subscribe(fn) { const store = getStores().navigating; return store.subscribe(fn); } }; const error = (verb) => { throw new Error( ssr ? `Can only ${verb} session store in browser` : `Cannot ${verb} session store before subscribing` ); }; const session = { subscribe(fn) { const store = getStores().session; if (!ssr) { session.set = store.set; session.update = store.update; } return store.subscribe(fn); }, set: (value) => { error('set'); }, update: (updater) => { error('update'); } }; export { getStores, navigating, page, session, stores }; //# sourceMappingURL=stores.js.map