diff --git a/.github/workflows/preview-engine.yml b/.github/workflows/preview-engine.yml index 527a426a1f..965cdebbac 100644 --- a/.github/workflows/preview-engine.yml +++ b/.github/workflows/preview-engine.yml @@ -32,5 +32,5 @@ jobs: packageManager: bun apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} workingDirectory: "apps/engine" - wranglerVersion: "3.63.2" + wranglerVersion: "3.64.0" command: deploy --minify src/index.ts --name=engine-staging diff --git a/.github/workflows/production-engine.yml b/.github/workflows/production-engine.yml index ade443f64e..644fff7fed 100644 --- a/.github/workflows/production-engine.yml +++ b/.github/workflows/production-engine.yml @@ -32,5 +32,5 @@ jobs: packageManager: bun apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} workingDirectory: "apps/engine" - wranglerVersion: "3.63.2" + wranglerVersion: "3.64.0" command: deploy --minify src/index.ts --name=engine diff --git a/apps/engine/package.json b/apps/engine/package.json index ddde6b5479..e72a3d47d3 100644 --- a/apps/engine/package.json +++ b/apps/engine/package.json @@ -12,14 +12,14 @@ "@hono/swagger-ui": "^0.4.0", "@hono/zod-openapi": "^0.14.9", "@hono/zod-validator": "^0.2.2", - "hono": "^4.4.12", + "hono": "^4.4.13", "typesense": "^1.8.2", "xior": "^0.5.3", "zod": "^3.23.8" }, "devDependencies": { - "@cloudflare/workers-types": "^4.20240620.0", + "@cloudflare/workers-types": "^4.20240712.0", "@types/bun": "^1.1.6", - "wrangler": "^3.63.2" + "wrangler": "^3.64.0" } } diff --git a/apps/engine/src/routes/health/index.ts b/apps/engine/src/routes/health/index.ts index f7c1bf29b8..7473492df5 100644 --- a/apps/engine/src/routes/health/index.ts +++ b/apps/engine/src/routes/health/index.ts @@ -1,7 +1,7 @@ import type { Bindings } from "@/common/bindings"; import { ErrorSchema } from "@/common/schema"; import { Provider } from "@/providers"; -import { SearchClient } from "@/utils/search"; +import { getHealthCheck } from "@/utils/search"; import { createRoute } from "@hono/zod-openapi"; import { OpenAPIHono } from "@hono/zod-openapi"; import { env } from "hono/adapter"; @@ -44,15 +44,11 @@ app.openapi(indexRoute, async (c) => { envs, }); - const typesense = SearchClient(envs); - const searchResponse = await typesense.health.retrieve(); + const search = await getHealthCheck(envs); const allServices = { ...providers, - search: { - healthy: - typeof searchResponse === "string" && JSON.parse(searchResponse).ok, - }, + search, }; const isHealthy = Object.values(allServices).every( diff --git a/apps/engine/src/utils/search.ts b/apps/engine/src/utils/search.ts index 574f5ad5fa..b464a24d5f 100644 --- a/apps/engine/src/utils/search.ts +++ b/apps/engine/src/utils/search.ts @@ -17,3 +17,13 @@ export function SearchClient(envs: Bindings) { 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, + }; +}