/** * Construye el cliente de Typesense (Configuration + 14 sub-APIs) UNA sola * vez por carga de página, en vez de reconstruirlo en cada componente que * llama `useTypesenseApi()` (SearchPanel.vue, entrelineas.vue, * usePublicationFetch.ts). Se expone vía `nuxtApp.$typesenseApi` (tipado * automáticamente por Nuxt gracias al `provide` de retorno); el acceso lo * da el composable `useTypesenseClient()`. * * Sin sufijo `.client`: debe correr también en SSR porque los composables * lo consumen de forma síncrona en `setup()` (que sí se ejecuta en SSR, * aunque los fetches reales solo disparen en cliente) — con `.client` el * valor provisto queda `undefined` en el render de servidor y todo revienta. */ export default defineNuxtPlugin({ name: 'typesense-client', setup() { const api = useTypesenseApi() return { provide: { typesenseApi: api } } } })