UNPKG

@nuxtjs/sanity

Version:
38 lines (37 loc) 1.14 kB
import { defu } from "defu"; import { createClient } from "../../client.js"; import { useRuntimeConfig } from "#imports"; const clients = {}; const createSanityHelper = (options) => { const config = { ...options }; let client = createClient(config); return { client, config, fetch: client.fetch.bind(client), setToken(token) { config.token = token; client = createClient(config); } }; }; export function useSanity(_event, _client) { const client = (typeof _event === "string" ? _event : _client) || "default"; if (client in clients) { return clients[client]; } const $config = useRuntimeConfig(typeof _event === "string" ? void 0 : _event); const sanityConfig = import.meta.client ? $config.public.sanity : defu($config.sanity, $config.public.sanity); const { additionalClients = {}, liveContent, visualEditing, ...options } = sanityConfig; if (client === "default") { clients.default = createSanityHelper(options); return clients.default; } clients[client] = createSanityHelper(defu(additionalClients[client], options)); return clients[client]; }