summaryrefslogtreecommitdiff
path: root/u/trace/util.ts
diff options
context:
space:
mode:
Diffstat (limited to 'u/trace/util.ts')
-rw-r--r--u/trace/util.ts23
1 files changed, 14 insertions, 9 deletions
diff --git a/u/trace/util.ts b/u/trace/util.ts
index 3f9e5b8..e2200b9 100644
--- a/u/trace/util.ts
+++ b/u/trace/util.ts
@@ -1,16 +1,21 @@
-import type {
- Callable,
- IMetric,
- ITraceableMapper,
- ITraceableTuple,
- MetricsTraceSupplier,
+import {
+ANSI,
+ type Callable,
+ type IMetric,
+ type ITraceableMapper,
+ type ITraceableTuple,
+ type MetricsTraceSupplier,
} from "@emprespresso/pengueno";
export class TraceUtil {
static withTrace<T, Trace>(
trace: string,
+ ansi?: Array<keyof typeof ANSI>
): ITraceableMapper<T, ITraceableTuple<T, Trace | Array<Trace>>, Trace> {
- return (t) => [t.get(), `[${trace}]`];
+ if (ansi) {
+ return (t) => [t.get(), `${ansi.join("")}${trace}${ANSI.RESET}`];
+ }
+ return (t) => [t.get(), trace];
}
static withMetricTrace<T, Trace extends MetricsTraceSupplier>(
@@ -22,13 +27,13 @@ export class TraceUtil {
static withFunctionTrace<F extends Callable, T, Trace>(
f: F,
): ITraceableMapper<T, ITraceableTuple<T, Trace | Array<Trace>>, Trace> {
- return TraceUtil.withTrace(f.name);
+ return TraceUtil.withTrace(`fn.${f.name}`);
}
static withClassTrace<C extends object, T, Trace>(
c: C,
): ITraceableMapper<T, ITraceableTuple<T, Trace | Array<Trace>>, Trace> {
- return TraceUtil.withTrace(c.constructor.name);
+ return TraceUtil.withTrace(`class.${c.constructor.name}`);
}
static promiseify<T, U, Trace>(