25 lines
912 B
TypeScript
25 lines
912 B
TypeScript
/**
|
|
* 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
|
|
}
|
|
}
|
|
}
|
|
})
|