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.ts117
1 files changed, 50 insertions, 67 deletions
diff --git a/u/trace/trace.ts b/u/trace/trace.ts
index 5629c28..acc116f 100644
--- a/u/trace/trace.ts
+++ b/u/trace/trace.ts
@@ -1,86 +1,69 @@
import {
- isMetricsTraceSupplier,
- type ITrace,
- type ITraceable,
- type ITraceWith,
- LogLevel,
- LogTrace,
- type LogTraceSupplier,
- MetricsTrace,
- type MetricsTraceSupplier,
- type MetricValue,
- TraceableImpl,
-} from "@emprespresso/pengueno";
+ isMetricsTraceSupplier,
+ type ITrace,
+ type ITraceable,
+ type ITraceWith,
+ LogLevel,
+ LogTrace,
+ type LogTraceSupplier,
+ MetricsTrace,
+ type MetricsTraceSupplier,
+ type MetricValue,
+ TraceableImpl,
+} from '@emprespresso/pengueno';
export class LogTraceable<T> extends TraceableImpl<T, LogTraceSupplier> {
- public static LogTrace = new LogTrace();
- static of<T>(t: T) {
- return new LogTraceable(t, LogTraceable.LogTrace);
- }
+ public static LogTrace = new LogTrace();
+ static of<T>(t: T) {
+ return new LogTraceable(t, LogTraceable.LogTrace);
+ }
}
-const getEmbeddedMetricConsumer =
- (logTrace: ITrace<LogTraceSupplier>) =>
- (metrics: Array<MetricValue>) =>
+const getEmbeddedMetricConsumer = (logTrace: ITrace<LogTraceSupplier>) => (metrics: Array<MetricValue>) =>
logTrace.addTrace(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),
- );
+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);
- }
+ static of<T>(t: T, metricsTrace = EmbeddedMetricsTraceable.MetricsTrace) {
+ return new EmbeddedMetricsTraceable(t, metricsTrace);
+ }
}
-export type LogMetricTraceSupplier = ITraceWith<
- LogTraceSupplier | MetricsTraceSupplier
->;
+export type LogMetricTraceSupplier = ITraceWith<LogTraceSupplier | MetricsTraceSupplier>;
export class LogMetricTrace implements ITrace<LogMetricTraceSupplier> {
- constructor(
- private logTrace: ITrace<LogTraceSupplier>,
- private metricsTrace: ITrace<MetricsTraceSupplier>,
- ) {}
+ constructor(
+ private logTrace: ITrace<LogTraceSupplier>,
+ private metricsTrace: ITrace<MetricsTraceSupplier>,
+ ) {}
- public addTrace(
- trace: LogTraceSupplier | MetricsTraceSupplier,
- ): LogMetricTrace {
- if (isMetricsTraceSupplier(trace)) {
- this.metricsTrace = this.metricsTrace.addTrace(trace);
- return this;
+ public addTrace(trace: LogTraceSupplier | MetricsTraceSupplier): LogMetricTrace {
+ if (isMetricsTraceSupplier(trace)) {
+ this.metricsTrace = this.metricsTrace.addTrace(trace);
+ return this;
+ }
+ this.logTrace = this.logTrace.addTrace(trace);
+ return this;
}
- this.logTrace = this.logTrace.addTrace(trace);
- return this;
- }
- public trace(trace: LogTraceSupplier | MetricsTraceSupplier) {
- if (isMetricsTraceSupplier(trace)) {
- this.metricsTrace.trace(trace);
- return this;
+ public trace(trace: LogTraceSupplier | MetricsTraceSupplier) {
+ if (isMetricsTraceSupplier(trace)) {
+ this.metricsTrace.trace(trace);
+ return this;
+ }
+ this.logTrace.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),
- );
- }
+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);
- }
+ static of<T>(t: T) {
+ const logTrace = LogTraceable.of(t);
+ return LogMetricTraceable.ofLogTraceable(logTrace);
+ }
}