diff options
Diffstat (limited to 'u/server/request/pengueno.ts')
-rw-r--r-- | u/server/request/pengueno.ts | 44 |
1 files changed, 0 insertions, 44 deletions
diff --git a/u/server/request/pengueno.ts b/u/server/request/pengueno.ts deleted file mode 100644 index 31563e9..0000000 --- a/u/server/request/pengueno.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { BaseRequest, ITraceable, ServerTrace } from '@emprespresso/pengueno'; - -const greetings = ['hewwo :D', 'hiya cutie', 'boop!', 'sending virtual hugs!', 'stay pawsitive']; -const penguenoGreeting = () => greetings[Math.floor(Math.random() * greetings.length)]; - -export class PenguenoRequest { - private constructor( - public readonly req: BaseRequest, - private readonly id: string, - private readonly at: Date, - ) {} - - public elapsedTimeMs(after = () => Date.now()): number { - return after() - this.at.getTime(); - } - - public getResponseHeaders(): Record<string, string> { - const RequestId = this.id; - const RequestReceivedUnix = this.at.getTime(); - const RequestHandleUnix = Date.now(); - const DeltaUnix = this.elapsedTimeMs(() => RequestHandleUnix); - const Hai = penguenoGreeting(); - - return Object.entries({ - RequestId, - RequestReceivedUnix, - RequestHandleUnix, - DeltaUnix, - Hai, - }).reduce((acc, [key, val]) => ({ ...acc, [key]: val!.toString() }), {}); - } - - public static from(request: ITraceable<BaseRequest, ServerTrace>): ITraceable<PenguenoRequest, ServerTrace> { - const id = crypto.randomUUID(); - return request.bimap((tRequest) => { - const request = tRequest.get(); - const url = new URL(request.url); - const { pathname } = url; - const trace = `RequestId = ${id}, Method = ${request.method}, Path = ${pathname}`; - - return { item: new PenguenoRequest(request, id, new Date()), trace }; - }); - } -} |