summaryrefslogtreecommitdiff
path: root/u/server/request.ts
diff options
context:
space:
mode:
authorElizabeth Hunt <me@liz.coffee>2025-06-20 14:53:38 -0700
committerElizabeth Hunt <me@liz.coffee>2025-06-20 14:53:38 -0700
commitd4791f3d357634daf506fb8f91cc5332a794c421 (patch)
tree1bb01d2d4d8fa74d83bb6f99f2c8aa4146ca2d11 /u/server/request.ts
parentd7e8d31c94cd713a2f4cf799e20e993acc69e361 (diff)
downloadci-d4791f3d357634daf506fb8f91cc5332a794c421.tar.gz
ci-d4791f3d357634daf506fb8f91cc5332a794c421.zip
Move to nodejs
Diffstat (limited to 'u/server/request.ts')
-rw-r--r--u/server/request.ts74
1 files changed, 32 insertions, 42 deletions
diff --git a/u/server/request.ts b/u/server/request.ts
index 72e812a..10610f1 100644
--- a/u/server/request.ts
+++ b/u/server/request.ts
@@ -1,49 +1,39 @@
-import { LogMetricTraceable, LogTraceable } from "@emprespresso/pengueno";
-import { TraceUtil } from "../trace/util.ts";
+import { TraceUtil, LogMetricTraceable, LogTraceable } from '@emprespresso/pengueno';
-const greetings = [
- "hewwo :D",
- "hiya cutie",
- "boop!",
- "sending virtual hugs!",
- "stay pawsitive",
-];
-const penguenoGreeting = () =>
- greetings[Math.floor(Math.random() * greetings.length)];
+const greetings = ['hewwo :D', 'hiya cutie', 'boop!', 'sending virtual hugs!', 'stay pawsitive'];
+const penguenoGreeting = () => greetings[Math.floor(Math.random() * greetings.length)];
export class PenguenoRequest extends Request {
- private constructor(
- _input: Request,
- public readonly id: string,
- public readonly at: Date,
- ) {
- super(_input);
- }
+ private constructor(
+ _input: Request,
+ public readonly id: string,
+ public readonly at: Date,
+ ) {
+ super(_input);
+ }
- public baseResponseHeaders(): Record<string, string> {
- const ServerRequestTime = this.at.getTime();
- const ServerResponseTime = Date.now();
- const DeltaTime = ServerResponseTime - ServerRequestTime;
- const RequestId = this.id;
+ public baseResponseHeaders(): Record<string, string> {
+ const ServerRequestTime = this.at.getTime();
+ const ServerResponseTime = Date.now();
+ const DeltaTime = ServerResponseTime - ServerRequestTime;
+ const RequestId = this.id;
- return Object.entries({
- RequestId,
- ServerRequestTime,
- ServerResponseTime,
- DeltaTime,
- Hai: penguenoGreeting(),
- }).reduce((acc, [key, val]) => ({ ...acc, [key]: val.toString() }), {});
- }
+ return Object.entries({
+ RequestId,
+ ServerRequestTime,
+ ServerResponseTime,
+ DeltaTime,
+ Hai: penguenoGreeting(),
+ }).reduce((acc, [key, val]) => ({ ...acc, [key]: val!.toString() }), {});
+ }
- public static from(request: Request): LogMetricTraceable<PenguenoRequest> {
- const id = crypto.randomUUID();
- const url = new URL(request.url);
- const { pathname } = url;
- const logTraceable = LogTraceable.of(
- new PenguenoRequest(request, id, new Date()),
- ).bimap(
- TraceUtil.withTrace(`RequestId = ${id}, Method = ${request.method}, Path = ${pathname}`),
- );
- return LogMetricTraceable.ofLogTraceable(logTraceable);
- }
+ public static from(request: Request): LogMetricTraceable<PenguenoRequest> {
+ const id = crypto.randomUUID();
+ const url = new URL(request.url);
+ const { pathname } = url;
+ const logTraceable = LogTraceable.of(new PenguenoRequest(request, id, new Date())).bimap(
+ TraceUtil.withTrace(`RequestId = ${id}, Method = ${request.method}, Path = ${pathname}`),
+ );
+ return LogMetricTraceable.ofLogTraceable(logTraceable);
+ }
}