diff options
Diffstat (limited to 'u/trace/trace.ts')
-rw-r--r-- | u/trace/trace.ts | 40 |
1 files changed, 26 insertions, 14 deletions
diff --git a/u/trace/trace.ts b/u/trace/trace.ts index 5d5c59b..1d3d2d8 100644 --- a/u/trace/trace.ts +++ b/u/trace/trace.ts @@ -1,31 +1,43 @@ -import type { Callable } from "@emprespresso/utils"; import { + type Callable, type ITraceableMapper, type ITraceableTuple, + LoggerImpl, + LogTrace, + type LogTraceSupplier, TraceableImpl, - TraceableLogger, -} from "./mod.ts"; +} from "@emprespresso/pengueno"; -export class Traceable<T> extends TraceableImpl<T, TraceableLogger> { +export class LogTraceable<T> extends TraceableImpl<T, LogTraceSupplier> { static from<T>(t: T) { - return new Traceable(t, new TraceableLogger()); + return new LogTraceable(t, LogTrace(LoggerImpl)); } +} - static withFunctionTrace<F extends Callable, T>( +export class TraceUtil { + static withFunctionTrace<F extends Callable, T, Trace>( f: F, - ): ITraceableMapper<T, TraceableLogger, ITraceableTuple<T>> { - return (t) => [t.item, f.name]; + ): ITraceableMapper< + T, + ITraceableTuple<T, Trace>, + Trace + > { + return (t) => [t.item, `[${f.name}]`]; } - static withClassTrace<C extends object, T>( + static withClassTrace<C extends object, T, Trace>( c: C, - ): ITraceableMapper<T, TraceableLogger, ITraceableTuple<T>> { - return (t) => [t.item, c.constructor.name]; + ): ITraceableMapper< + T, + ITraceableTuple<T, Trace>, + Trace + > { + return (t) => [t.item, `[${c.constructor.name}]`]; } - static promiseify<T, U>( - mapper: ITraceableMapper<T, TraceableLogger, U>, - ): ITraceableMapper<Promise<T>, TraceableLogger, Promise<U>> { + static promiseify<T, U, Trace>( + mapper: ITraceableMapper<T, U, Trace>, + ): ITraceableMapper<Promise<T>, Promise<U>, Trace> { return (traceablePromise) => traceablePromise.flatMapAsync(async (t) => t.move(await t.item).map(mapper) |