@magic-mustard/sqlsync
Version:
SQLSync simplifies database schema evolution by allowing a declarative approach to table management
55 lines (54 loc) • 1.6 kB
JavaScript
;
/**
* Debug utility for SQLSync
* Controls debug output based on environment
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.configureDebug = configureDebug;
exports.debug = debug;
exports.isDebugEnabled = isDebugEnabled;
exports.setDebugEnabled = setDebugEnabled;
// Check for debug mode from environment
const DEBUG_ENV = process.env.SQLSYNC_DEBUG || process.env.NODE_ENV === 'development';
// Default configuration
const defaultConfig = {
enabled: DEBUG_ENV ? true : false,
level: DEBUG_ENV ? 'verbose' : 'none',
};
// Current configuration
let currentConfig = Object.assign({}, defaultConfig);
/**
* Configure debug settings
* @param config Debug configuration
*/
function configureDebug(config) {
currentConfig = Object.assign(Object.assign({}, currentConfig), config);
}
/**
* Log debug message if debugging is enabled
* @param message Debug message
* @param level Minimum level required to show this message
*/
function debug(message, level = 'basic') {
if (!currentConfig.enabled)
return;
if (level === 'verbose' && currentConfig.level !== 'verbose')
return;
console.log(`[DEBUG] ${message}`);
}
/**
* Check if debugging is enabled
* @returns True if debugging is enabled
*/
function isDebugEnabled() {
return currentConfig.enabled;
}
/**
* Enable or disable debugging
* @param enabled Whether debugging should be enabled
* @param level Debug level
*/
function setDebugEnabled(enabled, level = 'basic') {
currentConfig.enabled = enabled;
currentConfig.level = enabled ? level : 'none';
}