UNPKG

@nuxtjs/sanity

Version:
35 lines (34 loc) 853 B
import { watch } from "vue"; export const useSanityQueryFetcher = ({ onSnapshot, params, query, queryStore }) => { let unsubscribe = () => { }; if (import.meta.client && queryStore) { const setupFetcher = (cb) => { const fetcher = queryStore.createFetcherStore( query, params ? JSON.parse(JSON.stringify(params)) : void 0, void 0 ); const unsubscribe2 = fetcher.subscribe((newSnapshot) => { if (newSnapshot.data) { onSnapshot(newSnapshot.data, newSnapshot.sourceMap); cb?.(newSnapshot); } }); return unsubscribe2; }; unsubscribe = setupFetcher(); if (params) { watch(params, (_a, _b, onCleanup) => { onCleanup(() => unsubscribe()); unsubscribe = setupFetcher(); }); } } return { unsubscribe }; };