diff options
Diffstat (limited to 'u/trace/trace.ts')
-rw-r--r-- | u/trace/trace.ts | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/u/trace/trace.ts b/u/trace/trace.ts index 03605c2..6cad5b0 100644 --- a/u/trace/trace.ts +++ b/u/trace/trace.ts @@ -1,6 +1,7 @@ import { isMetricsTraceSupplier, type ITrace, + type ITraceable, type ITraceWith, LogTrace, type LogTraceSupplier, @@ -12,16 +13,14 @@ import { export class LogTraceable<T> extends TraceableImpl<T, LogTraceSupplier> { public static LogTrace = new LogTrace(); - static from<T>(t: T) { + static of<T>(t: T) { return new LogTraceable(t, LogTraceable.LogTrace); } } const getEmbeddedMetricConsumer = - (logTrace: LogTrace) => (metrics: Array<MetricValue>) => - logTrace - .addTrace("<metrics>") - .trace(JSON.stringify(metrics, null, 2) + "</metrics>"); + (logTrace: ITrace<LogTraceSupplier>) => (metrics: Array<MetricValue>) => + logTrace.trace(`<metrics>${JSON.stringify(metrics, null)}</metrics>`); export class EmbeddedMetricsTraceable<T> extends TraceableImpl< T, MetricsTraceSupplier @@ -30,11 +29,8 @@ export class EmbeddedMetricsTraceable<T> extends TraceableImpl< getEmbeddedMetricConsumer(LogTraceable.LogTrace), ); - static from<T>(t: T) { - return new EmbeddedMetricsTraceable( - t, - EmbeddedMetricsTraceable.MetricsTrace, - ); + static of<T>(t: T, metricsTrace = EmbeddedMetricsTraceable.MetricsTrace) { + return new EmbeddedMetricsTraceable(t, metricsTrace); } } @@ -72,12 +68,16 @@ export class LogMetricTraceable<T> extends TraceableImpl< T, MetricsTraceSupplier | LogTraceSupplier > { - public static LogMetricTrace = new LogMetricTrace( - LogTraceable.LogTrace, - EmbeddedMetricsTraceable.MetricsTrace, - ); + static ofLogTraceable<T>(t: ITraceable<T, LogTraceSupplier>) { + const metricsTrace = new MetricsTrace(getEmbeddedMetricConsumer(t.trace)); + return new LogMetricTraceable( + t.get(), + new LogMetricTrace(t.trace, metricsTrace), + ); + } - static from<T>(t: T) { - return new LogMetricTraceable(t, LogMetricTraceable.LogMetricTrace); + static of<T>(t: T) { + const logTrace = LogTraceable.of(t); + return LogMetricTraceable.ofLogTraceable(logTrace); } } |