设计tracer
This commit is contained in:
@@ -3,20 +3,17 @@ import { Registry } from "../registry";
|
|||||||
|
|
||||||
export interface ArrayTracerOption<T> {
|
export interface ArrayTracerOption<T> {
|
||||||
description: string;
|
description: string;
|
||||||
serializeFn?: (value: T) => string;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export class ArrayTracer<T> {
|
export class ArrayTracer<T> {
|
||||||
private tracerId: string;
|
private tracerId: string;
|
||||||
private serializeFn?: (value: T) => string;
|
|
||||||
|
|
||||||
private constructor(option: ArrayTracerOption<T>) {
|
private constructor() {
|
||||||
this.tracerId = crypto.randomUUID();
|
this.tracerId = crypto.randomUUID();
|
||||||
this.serializeFn = option.serializeFn;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static define<T>(option: ArrayTracerOption<T>): ArrayTracer<T> {
|
public static define<T>(option: ArrayTracerOption<T>): ArrayTracer<T> {
|
||||||
const arrayTracer = new ArrayTracer(option);
|
const arrayTracer = new ArrayTracer();
|
||||||
const registry = Registry.getInstance();
|
const registry = Registry.getInstance();
|
||||||
registry.register("ArrayTracer", arrayTracer.tracerId);
|
registry.register("ArrayTracer", arrayTracer.tracerId);
|
||||||
const commander = Commander.getInstance();
|
const commander = Commander.getInstance();
|
||||||
|
|||||||
Reference in New Issue
Block a user