@phroun/paged-buffer
Version:
High-performance buffer system for editing massive files with intelligent memory management and undo/redo capabilities
79 lines • 1.95 kB
JavaScript
;
/**
* @fileoverview Simple logger utility with debug toggle
* @description Provides console logging with optional debug output control
* @author Jeffrey R. Day
* @version 1.0.0
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.logger = exports.isDebugEnabled = exports.setDebug = exports.info = exports.error = exports.warn = exports.debug = void 0;
let debugOutputEnabled = false;
/**
* Logs messages to the console if debugging is enabled.
* Behaves like console.log, accepting multiple arguments.
*/
function debug(...args) {
if (debugOutputEnabled) {
// eslint-disable-next-line no-console
console.log(...args);
}
}
exports.debug = debug;
/**
* Logs warning messages to the console if debugging is enabled.
* Alias for debug function to maintain compatibility.
*/
function warn(...args) {
if (debugOutputEnabled) {
// eslint-disable-next-line no-console
console.warn(...args);
}
}
exports.warn = warn;
/**
* Logs error messages to the console (always enabled).
*/
function error(...args) {
// eslint-disable-next-line no-console
console.error(...args);
}
exports.error = error;
/**
* Logs info messages to the console if debugging is enabled.
*/
function info(...args) {
if (debugOutputEnabled) {
// eslint-disable-next-line no-console
console.info(...args);
}
}
exports.info = info;
/**
* Enables or disables debug output.
*/
function setDebug(enable) {
debugOutputEnabled = enable;
}
exports.setDebug = setDebug;
/**
* Gets the current debug state.
*/
function isDebugEnabled() {
return debugOutputEnabled;
}
exports.isDebugEnabled = isDebugEnabled;
/**
* Default logger instance
*/
const logger = {
debug,
warn,
error,
info,
setDebug,
isDebugEnabled
};
exports.logger = logger;
// Default export for compatibility
exports.default = logger;
//# sourceMappingURL=logger.js.map