Add shared parseBooleanValue()/isTruthyEnvValue() and apply across CLI, gateway, memory, and live-test flags for consistent env handling. Introduce route-first fast paths, lazy subcommand registration, and deferred plugin loading to reduce CLI startup overhead. Centralize config validation via ensureConfigReady() and add config caching/deferred shell env fallback for fewer IO passes. Harden logger initialization/imports and add focused tests for argv, boolean parsing, frontmatter, and CLI subcommands.
47 lines
1.0 KiB
TypeScript
47 lines
1.0 KiB
TypeScript
import { getLogger, isFileLogLevelEnabled } from "./logging/logger.js";
|
|
import { theme } from "./terminal/theme.js";
|
|
|
|
let globalVerbose = false;
|
|
let globalYes = false;
|
|
|
|
export function setVerbose(v: boolean) {
|
|
globalVerbose = v;
|
|
}
|
|
|
|
export function isVerbose() {
|
|
return globalVerbose;
|
|
}
|
|
|
|
export function shouldLogVerbose() {
|
|
return globalVerbose || isFileLogLevelEnabled("debug");
|
|
}
|
|
|
|
export function logVerbose(message: string) {
|
|
if (!shouldLogVerbose()) return;
|
|
try {
|
|
getLogger().debug({ message }, "verbose");
|
|
} catch {
|
|
// ignore logger failures to avoid breaking verbose printing
|
|
}
|
|
if (!globalVerbose) return;
|
|
console.log(theme.muted(message));
|
|
}
|
|
|
|
export function logVerboseConsole(message: string) {
|
|
if (!globalVerbose) return;
|
|
console.log(theme.muted(message));
|
|
}
|
|
|
|
export function setYes(v: boolean) {
|
|
globalYes = v;
|
|
}
|
|
|
|
export function isYes() {
|
|
return globalYes;
|
|
}
|
|
|
|
export const success = theme.success;
|
|
export const warn = theme.warn;
|
|
export const info = theme.info;
|
|
export const danger = theme.error;
|