function resolveCliDebugTimingMode(env: NodeJS.ProcessEnv = process.env): TimingMode { const raw = env[CLI_DEBUG_TIMING_ENV]?.trim().toLowerCase(); if (raw === "1") { return"pretty";
} if (raw === "json") { return"json";
} return"off";
}
function normalizeDetailValue(value: TimingDetailValue): string | number | boolean | null{ if (typeof value === "number") { return Number.isFinite(value) ? value : null;
} return value ?? null;
}
function appendDetails(payload: TimingPayload, details?: TimingDetails): TimingPayload { if (!details) { return payload;
} for (const [key, value] of Object.entries(details)) { if (value === undefined) { continue;
}
payload[key] = normalizeDetailValue(value);
} return payload;
}
function formatDuration(ms: number): string { if (ms >= 1000) { return `${(ms / 1000).toFixed(1)}s`;
} return `${ms}ms`;
}
function formatPrettyDetailValue(value: string | number | boolean | null): string { if (typeof value === "string") { return JSON.stringify(value);
} return String(value);
}
function formatPrettyLabel(value: string): string { return JSON.stringify(value);
}
function isPromiseLike(value: unknown): value is PromiseLike<unknown> { return ( typeof value === "object" &&
value !== null && "then" in value && typeof (value as { then?: unknown }).then === "function"
);
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.