@agility/cli
Version:
Agility CLI for working with your content. (Public Beta)
92 lines (91 loc) • 2.78 kB
TypeScript
import { fileOperations } from '../../../core/fileOperations';
export type ConsoleMode = 'headless' | 'verbose' | 'plain';
export interface ConsoleState {
mode: ConsoleMode;
originalLog: typeof console.log;
originalError: typeof console.error;
isRedirected: boolean;
}
export interface ConsoleRedirectionHandlers {
onLog?: (message: string) => void;
onError?: (message: string) => void;
}
export declare class ConsoleManager {
private state;
private fileOps?;
private redirectionHandlers?;
constructor();
/**
* Setup console mode and redirection
*/
setupMode(mode: ConsoleMode, fileOps?: fileOperations, handlers?: ConsoleRedirectionHandlers): void;
/**
* Setup headless mode (file logging only, no console output)
*/
private setupHeadlessMode;
/**
* Setup verbose mode (console + file logging)
*/
private setupVerboseMode;
/**
* Setup plain mode (console + file logging, like verbose but less verbose)
*/
private setupPlainMode;
/**
* Format console arguments into a single message string
*/
private formatMessage;
/**
* Log message to file using existing fileOperations infrastructure
*/
private logToFile;
/**
* Restore original console methods
*/
restoreConsole(): void;
/**
* Check if console is currently redirected
*/
isRedirected(): boolean;
/**
* Get current console mode
*/
getMode(): ConsoleMode;
/**
* Conditional logging - only log if conditions are met
*/
conditionalLog(message: string, condition: boolean): void;
/**
* Log with specific color formatting (maintains existing ansiColors patterns)
*/
logSuccess(message: string): void;
logError(message: string): void;
logWarning(message: string): void;
logInfo(message: string): void;
/**
* Log step-related messages (consistent with existing pusher patterns)
*/
logStepStart(stepName: string): void;
logStepSuccess(stepName: string, details?: string): void;
logStepError(stepName: string, error: string): void;
/**
* Log separator (consistent with existing patterns)
*/
logSeparator(): void;
/**
* Create a file operations instance for the current state
*/
static createFileOps(guid?: string): fileOperations;
/**
* Finalize log file and return path
*/
finalizeLogFile(operationType: 'pull' | 'push' | 'sync'): string | null;
/**
* Update redirection handlers (useful for dynamic handler changes)
*/
updateRedirectionHandlers(handlers: ConsoleRedirectionHandlers): void;
/**
* Get console state for debugging
*/
getConsoleState(): ConsoleState;
}