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.ts77
1 files changed, 0 insertions, 77 deletions
diff --git a/u/trace/trace.ts b/u/trace/trace.ts
deleted file mode 100644
index bde83a3..0000000
--- a/u/trace/trace.ts
+++ /dev/null
@@ -1,77 +0,0 @@
-import {
- isMetricsTraceSupplier,
- type ITrace,
- type ITraceable,
- type ITraceWith,
- LogLevel,
- LogTrace,
- type LogTraceSupplier,
- MetricsTrace,
- type MetricsTraceSupplier,
- type MetricValue,
- TraceableImpl,
-} from './index.js';
-
-export class LogTraceable<T> extends TraceableImpl<T, LogTraceSupplier> {
- public static LogTrace = new LogTrace();
- static of<T>(t: T) {
- return new LogTraceable(t, LogTraceable.LogTrace);
- }
-}
-
-const getEmbeddedMetricConsumer = (logTrace: ITrace<LogTraceSupplier>) => (metrics: Array<MetricValue>) => {
- if (metrics.length === 0) return;
- logTrace.traceScope(LogLevel.SYS).trace(`Metrics = <metrics>${JSON.stringify(metrics)}</metrics>`);
-};
-
-export class EmbeddedMetricsTraceable<T> extends TraceableImpl<T, MetricsTraceSupplier> {
- public static MetricsTrace = new MetricsTrace(getEmbeddedMetricConsumer(LogTraceable.LogTrace));
-
- static of<T>(t: T, metricsTrace = EmbeddedMetricsTraceable.MetricsTrace) {
- return new EmbeddedMetricsTraceable(t, metricsTrace);
- }
-}
-
-export type LogMetricTraceSupplier = ITraceWith<LogTraceSupplier | MetricsTraceSupplier>;
-export class LogMetricTrace implements ITrace<LogMetricTraceSupplier> {
- constructor(
- private logTrace: ITrace<LogTraceSupplier>,
- private metricsTrace: ITrace<MetricsTraceSupplier>,
- ) {}
-
- // public traceScope(trace: LogTraceSupplier | MetricsTraceSupplier): LogMetricTrace {
- // if (isMetricsTraceSupplier(trace)) {
- // this.metricsTrace = this.metricsTrace.traceScope(trace);
- // return this;
- // }
- // this.logTrace = this.logTrace.traceScope(trace);
- // return this;
- // }
- public traceScope(trace: LogTraceSupplier | MetricsTraceSupplier): LogMetricTrace {
- if (isMetricsTraceSupplier(trace)) {
- return new LogMetricTrace(this.logTrace, this.metricsTrace.traceScope(trace));
- }
- return new LogMetricTrace(this.logTrace.traceScope(trace), this.metricsTrace);
- }
-
- public trace(trace: LogTraceSupplier | MetricsTraceSupplier) {
- if (isMetricsTraceSupplier(trace)) {
- this.metricsTrace.trace(trace);
- return this;
- }
- this.logTrace.trace(trace);
- return this;
- }
-}
-
-export class LogMetricTraceable<T> extends TraceableImpl<T, MetricsTraceSupplier | LogTraceSupplier> {
- 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 of<T>(t: T) {
- const logTrace = LogTraceable.of(t);
- return LogMetricTraceable.ofLogTraceable(logTrace);
- }
-}