设计tracer

This commit is contained in:
2025-11-10 22:39:27 +08:00
parent 8f5493eaf0
commit 0ade49a589

View File

@@ -3,20 +3,17 @@ import { Registry } from "../registry";
export interface ArrayTracerOption<T> {
description: string;
serializeFn?: (value: T) => string;
}
export class ArrayTracer<T> {
private tracerId: string;
private serializeFn?: (value: T) => string;
private constructor(option: ArrayTracerOption<T>) {
private constructor() {
this.tracerId = crypto.randomUUID();
this.serializeFn = option.serializeFn;
}
public static define<T>(option: ArrayTracerOption<T>): ArrayTracer<T> {
const arrayTracer = new ArrayTracer(option);
const arrayTracer = new ArrayTracer();
const registry = Registry.getInstance();
registry.register("ArrayTracer", arrayTracer.tracerId);
const commander = Commander.getInstance();