Midday / apps /engine /src /utils /search.ts
Jules
Final deployment with all fixes and verified content
c09f67c
import type { Bindings } from "@engine/common/bindings";
import Typesense from "typesense";
export function SearchClient(envs: Bindings) {
return new Typesense.Client({
nearestNode: {
host: envs.TYPESENSE_ENDPOINT!,
port: 443,
protocol: "https",
},
nodes: [
{ host: envs.TYPESENSE_ENDPOINT_US!, port: 443, protocol: "https" },
{ host: envs.TYPESENSE_ENDPOINT_EU!, port: 443, protocol: "https" },
{ host: envs.TYPESENSE_ENDPOINT_AU!, port: 443, protocol: "https" },
],
apiKey: envs.TYPESENSE_API_KEY,
connectionTimeoutSeconds: 2,
});
}
export async function getHealthCheck(envs: Bindings) {
const typesense = SearchClient(envs);
const searchResponse = await typesense.health.retrieve();
return {
healthy:
typeof searchResponse === "string" && JSON.parse(searchResponse).ok,
};
}