@deepbrainspace/nx-surrealdb
Version:
NX plugin for SurrealDB migrations with modular architecture
125 lines âĸ 3.73 kB
JavaScript
;
/**
* Centralized debug utility for nx-surrealdb-migrations
* Provides consistent debug logging across all generators and executors
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.Debug = void 0;
class Debug {
/**
* Enable debug mode
*/
static enable() {
Debug.isEnabled = true;
}
/**
* Disable debug mode
*/
static disable() {
Debug.isEnabled = false;
}
/**
* Check if debug mode is enabled
*/
static get enabled() {
return Debug.isEnabled;
}
/**
* Set debug mode based on boolean value
*/
static setEnabled(enabled) {
Debug.isEnabled = enabled;
}
/**
* Log debug message with đ prefix
*/
static log(message, ...args) {
if (Debug.isEnabled) {
console.log(`đ DEBUG: ${message}`, ...args);
}
}
/**
* Log debug error with â prefix
*/
static error(message, error) {
if (Debug.isEnabled) {
console.error(`đ DEBUG ERROR: ${message}`, error);
}
}
/**
* Log debug warning with â ī¸ prefix
*/
static warn(message, ...args) {
if (Debug.isEnabled) {
console.warn(`đ DEBUG WARNING: ${message}`, ...args);
}
}
/**
* Log debug info with âšī¸ prefix
*/
static info(message, ...args) {
if (Debug.isEnabled) {
console.info(`đ DEBUG INFO: ${message}`, ...args);
}
}
/**
* Log debug object/data with proper formatting
*/
static data(label, data) {
if (Debug.isEnabled) {
console.log(`đ DEBUG DATA [${label}]:`, JSON.stringify(data, null, 2));
}
}
/**
* Log debug table for array data
*/
static table(label, data) {
if (Debug.isEnabled) {
console.log(`đ DEBUG TABLE [${label}]:`);
console.table(data);
}
}
static time(label, fn) {
if (!Debug.isEnabled) {
return fn();
}
const start = Date.now();
console.log(`đ DEBUG TIMER: Starting ${label}`);
const result = fn();
if (result instanceof Promise) {
return result
.then(value => {
const duration = Date.now() - start;
console.log(`đ DEBUG TIMER: ${label} completed in ${duration}ms`);
return value;
})
.catch(error => {
const duration = Date.now() - start;
console.log(`đ DEBUG TIMER: ${label} failed after ${duration}ms`);
throw error;
});
}
else {
const duration = Date.now() - start;
console.log(`đ DEBUG TIMER: ${label} completed in ${duration}ms`);
return result;
}
}
/**
* Create a scoped debug instance for a specific module
*/
static scope(moduleName) {
return {
log: (message, ...args) => Debug.log(`[${moduleName}] ${message}`, ...args),
error: (message, error) => Debug.error(`[${moduleName}] ${message}`, error),
warn: (message, ...args) => Debug.warn(`[${moduleName}] ${message}`, ...args),
info: (message, ...args) => Debug.info(`[${moduleName}] ${message}`, ...args),
data: (label, data) => Debug.data(`${moduleName}:${label}`, data),
table: (label, data) => Debug.table(`${moduleName}:${label}`, data),
time: (label, fn) => Debug.time(`${moduleName}:${label}`, fn),
};
}
}
exports.Debug = Debug;
Debug.isEnabled = false;
//# sourceMappingURL=debug.js.map