gaunt-sloth-assistant
Version:
[](https://github.com/Galvanized-Pukeko/gaunt-sloth-assistant/actions/workflows/unit-tests.yml) [ {
if (!su.getUseColour()) {
return text;
}
return `${ANSI_COLORS[color]}${text}${ANSI_COLORS.reset}`;
}
// Stream-based logging function
const writeToSessionLog = (message) => {
if (loggingState.enableSessionLogging) {
// Strip ANSI color codes before logging to file
const cleanMessage = message.replace(/\x1b\[[0-9;]*m/g, '');
writeToLogStream(cleanMessage);
}
};
// Public functions for session logging management
export const initSessionLogging = (logFileName, enableLogging) => {
loggingState.sessionLogFile = enableLogging ? logFileName : undefined;
loggingState.enableSessionLogging = enableLogging;
if (enableLogging && logFileName) {
initLogStream(logFileName);
}
};
export const flushSessionLog = () => {
// Streams auto-flush, so this is now a no-op for API compatibility
// Could potentially force flush if needed in the future
};
export const stopSessionLogging = () => {
closeLogStream();
loggingState.sessionLogFile = undefined;
loggingState.enableSessionLogging = false;
};
export function displayError(message) {
const coloredMessage = colorText(message, 'red');
writeToSessionLog(message + '\n');
su.log(coloredMessage);
}
export function displayWarning(message) {
const coloredMessage = colorText(message, 'yellow');
writeToSessionLog(message + '\n');
su.warn(coloredMessage);
}
export function displaySuccess(message) {
const coloredMessage = colorText(message, 'green');
writeToSessionLog(message + '\n');
su.log(coloredMessage);
}
export function displayInfo(message) {
const coloredMessage = colorText(message, 'dim');
writeToSessionLog(message + '\n');
su.info(coloredMessage);
}
export function display(message) {
writeToSessionLog(message + '\n');
su.log(message);
}
export function formatInputPrompt(message) {
return colorText(message, 'magenta');
}
export function displayDebug(message) {
// TODO make it controlled by config
if (message instanceof Error) {
const stackTrace = message.stack || '';
writeToSessionLog(stackTrace + '\n');
su.debug(stackTrace);
}
else if (message !== undefined) {
writeToSessionLog(message + '\n');
su.debug(message);
}
}
// Create status update callback
export const defaultStatusCallback = (level, message) => {
switch (level) {
case 'info':
displayInfo(message);
break;
case 'warning':
displayWarning(message);
break;
case 'error':
displayError(message);
break;
case 'success':
displaySuccess(message);
break;
case 'debug':
displayDebug(message);
break;
case 'display':
display(message);
break;
case 'stream':
writeToSessionLog(message);
stream(message);
break;
}
};
//# sourceMappingURL=consoleUtils.js.map