Luigit
repositories / pi-ext

pi-ext

bugabingas pi extensions

owned by admin

extensions/git-safe/src/debug.ts

Raw
import { defineDebug } from "./pi-ext-debug.ts";

type DebugFields = Partial<{
	mode: "interactive" | "json" | "print" | "rpc" | "tui";
	count: number;
	status: "wrapped" | "outside" | "missing" | "empty" | "not_text";
	type: "clone" | "readpath";
}>;
type DebugEvent = "session.start" | "session.shutdown";
type DebugSpan = "clone" | "read.spotlight";

export const {
	dbg,
	span,
	closeDebug,
}: {
	dbg: ((event: DebugEvent, details?: DebugFields) => void) | undefined;
	span:
		| ((
				event: DebugSpan,
				details?: DebugFields,
		  ) => (outcome?: "finish" | "error", details?: DebugFields) => void)
		| undefined;
	closeDebug: () => void;
} = defineDebug({
	events: ["session.start", "session.shutdown"],
	spans: ["clone", "read.spotlight"],
	fields: {
		mode: ["interactive", "json", "print", "rpc", "tui"],
		count: "number",
		status: ["wrapped", "outside", "missing", "empty", "not_text"],
		type: ["clone", "readpath"],
	},
} as const);