summaryrefslogtreecommitdiff
path: root/server
diff options
context:
space:
mode:
authorElizabeth Hunt <me@liz.coffee>2025-08-17 12:27:30 -0700
committerElizabeth Hunt <me@liz.coffee>2025-08-17 12:27:30 -0700
commitdd08023982e34cd66e1329beb65c55b8b1c7869a (patch)
treefca2209fd3d57b383ad9f6dc418a0592e6471e17 /server
parent0f5ccadc0b2967ac84931f2ddcccb118d57d2cc7 (diff)
downloadci-dd08023982e34cd66e1329beb65c55b8b1c7869a.tar.gz
ci-dd08023982e34cd66e1329beb65c55b8b1c7869a.zip
Bump pengueno and use common HonoProxyrelease
Diffstat (limited to 'server')
-rw-r--r--server/hono_proxy.ts71
-rw-r--r--server/index.ts4
-rw-r--r--server/package.json2
3 files changed, 3 insertions, 74 deletions
diff --git a/server/hono_proxy.ts b/server/hono_proxy.ts
deleted file mode 100644
index f729819..0000000
--- a/server/hono_proxy.ts
+++ /dev/null
@@ -1,71 +0,0 @@
-import {
- BaseRequest,
- Either,
- IEither,
- LogMetricTraceable,
- Metric,
- PenguenoRequest,
- Server,
- Signals,
- TraceUtil,
-} from '@emprespresso/pengueno';
-
-import { serve, ServerType } from '@hono/node-server';
-import { Hono } from 'hono';
-
-const AppLifetimeMetric = Metric.fromName('HonoAppLifetime').asResult();
-const AppRequestMetric = Metric.fromName('HonoAppRequest');
-
-export class HonoProxy {
- private readonly app = LogMetricTraceable.of(new Hono())
- .flatMap(TraceUtil.withTrace(`AppId = ${crypto.randomUUID()}`))
- .flatMap(TraceUtil.withMetricTrace(AppLifetimeMetric));
-
- constructor(private readonly server: Server) {}
-
- public async serve(port: number, hostname: string): Promise<IEither<Error, void>> {
- return this.app
- .map((tApp) =>
- Either.fromFailable<Error, ServerType>(() => {
- const app = tApp.get();
- app.all('*', async (c) =>
- tApp
- .flatMap(TraceUtil.withMetricTrace(AppRequestMetric))
- .move(<BaseRequest>c.req)
- .flatMap((tRequest) => PenguenoRequest.from(tRequest))
- .map((req) => this.server.serve(req))
- .map(
- TraceUtil.promiseify((tResponse) => {
- tResponse.trace.trace(AppRequestMetric.count.withValue(1.0));
- return new Response(tResponse.get().body(), tResponse.get());
- }),
- )
- .get(),
- );
- return serve({
- fetch: (_r) => app.fetch(_r),
- port,
- hostname,
- });
- }),
- )
- .peek(TraceUtil.traceResultingEither())
- .peek((tServe) =>
- tServe
- .get()
- .mapRight(() =>
- tServe.trace.trace(
- `haii im still listening at http://${hostname}:${port} ~uwu dont think i forgot`,
- ),
- ),
- )
- .map((tEitherServer) =>
- tEitherServer
- .get()
- .mapRight((server) => tEitherServer.move(server))
- .flatMapAsync((tServer) => Signals.awaitClose(tServer)),
- )
- .peek(TraceUtil.promiseify(TraceUtil.traceResultingEither(AppLifetimeMetric)))
- .get();
- }
-}
diff --git a/server/index.ts b/server/index.ts
index d018a4e..59b72de 100644
--- a/server/index.ts
+++ b/server/index.ts
@@ -3,9 +3,9 @@
export * from './job/index.js';
export * from './ci.js';
export * from './health.js';
-export * from './hono_proxy.js';
-import { CiHookServer, HonoProxy } from '@emprespresso/ci_server';
+import { CiHookServer } from '@emprespresso/ci_server';
+import { HonoProxy } from '@emprespresso/pengueno';
const server = new CiHookServer();
const hono = new HonoProxy(server);
diff --git a/server/package.json b/server/package.json
index c0ce5c6..fe8b4ed 100644
--- a/server/package.json
+++ b/server/package.json
@@ -20,7 +20,7 @@
"format:check": "prettier --check ."
},
"dependencies": {
- "@emprespresso/pengueno": "^0.0.6",
+ "@emprespresso/pengueno": "^0.0.9",
"@emprespresso/ci_model": "*",
"@hono/node-server": "^1.14.0",
"hono": "^4.8.9"