From 88b69af6ddca863261131c095bd21c7026e3a126 Mon Sep 17 00:00:00 2001 From: Peter Zich Date: Wed, 17 Apr 2024 18:54:39 -0700 Subject: [PATCH] Create TimestampTransformer and use it in EwtConsole --- src/components/ewt-console.ts | 2 ++ src/util/timestamp-transformer.ts | 12 ++++++++++++ 2 files changed, 14 insertions(+) create mode 100644 src/util/timestamp-transformer.ts diff --git a/src/components/ewt-console.ts b/src/components/ewt-console.ts index bf5998ce..0d70f4d0 100644 --- a/src/components/ewt-console.ts +++ b/src/components/ewt-console.ts @@ -1,6 +1,7 @@ import { ColoredConsole, coloredConsoleStyles } from "../util/console-color"; import { sleep } from "../util/sleep"; import { LineBreakTransformer } from "../util/line-break-transformer"; +import { TimestampTransformer } from "../util/timestamp-transformer"; import { Logger } from "../const"; export class EwtConsole extends HTMLElement { @@ -95,6 +96,7 @@ export class EwtConsole extends HTMLElement { signal: abortSignal, }) .pipeThrough(new TransformStream(new LineBreakTransformer())) + .pipeThrough(new TransformStream(new TimestampTransformer())) .pipeTo( new WritableStream({ write: (chunk) => { diff --git a/src/util/timestamp-transformer.ts b/src/util/timestamp-transformer.ts new file mode 100644 index 00000000..688a56c7 --- /dev/null +++ b/src/util/timestamp-transformer.ts @@ -0,0 +1,12 @@ +export class TimestampTransformer implements Transformer { + transform( + chunk: string, + controller: TransformStreamDefaultController, + ) { + const date = new Date(); + const h = date.getHours().toString().padStart(2, '0'); + const m = date.getMinutes().toString().padStart(2, '0'); + const s = date.getSeconds().toString().padStart(2, '0'); + controller.enqueue(`[${h}:${m}:${s}]${chunk}`); + } +}