@riadvargas/svelte-algolia-instantsearch
Version:
Svelte wrapper for Algolia InstantSearch
18 lines (17 loc) • 777 B
JavaScript
import { getInitialResults, waitForResults } from "instantsearch.js/es/lib/server";
import { getContext } from "svelte";
import { render } from "svelte/server";
const serverContext = Symbol("InstantSearch:serverContext");
export const getServerContext = () => getContext(serverContext);
// eslint-disable-next-line @typescript-eslint/no-explicit-any
export function getServerState(component, serverUrl) {
return new Promise((resolve) => {
const notifyServer = async (search) => {
await waitForResults(search);
const results = getInitialResults(search.mainIndex);
search.dispose();
resolve(results);
};
render(component, { context: new Map([[serverContext, { notifyServer, serverUrl }]]) });
});
}