summaryrefslogtreecommitdiff
path: root/u/trace/trace.ts
diff options
context:
space:
mode:
Diffstat (limited to 'u/trace/trace.ts')
-rw-r--r--u/trace/trace.ts32
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);
}
}