dijkstra-backend-cloudron/node_modules/knex/lib/logger.js

79 lines
1.6 KiB
JavaScript

/* eslint no-console:0 */
const color = require('colorette');
const { inspect } = require('util');
const { isFunction, isNil, isString } = require('lodash');
class Logger {
constructor(config) {
const {
log: {
debug,
warn,
error,
deprecate,
inspectionDepth,
enableColors,
} = {},
} = config;
this._inspectionDepth = inspectionDepth || 5;
this._enableColors = resolveIsEnabledColors(enableColors);
this._debug = debug;
this._warn = warn;
this._error = error;
this._deprecate = deprecate;
}
_log(message, userFn, colorFn) {
if (!isNil(userFn) && !isFunction(userFn)) {
throw new TypeError('Extensions to knex logger must be functions!');
}
if (isFunction(userFn)) {
userFn(message);
return;
}
if (!isString(message)) {
message = inspect(message, {
depth: this._inspectionDepth,
colors: this._enableColors,
});
}
console.log(colorFn ? colorFn(message) : message);
}
debug(message) {
this._log(message, this._debug);
}
warn(message) {
this._log(message, this._warn, color.yellow);
}
error(message) {
this._log(message, this._error, color.red);
}
deprecate(method, alternative) {
const message = `${method} is deprecated, please use ${alternative}`;
this._log(message, this._deprecate, color.yellow);
}
}
function resolveIsEnabledColors(enableColorsParam) {
if (!isNil(enableColorsParam)) {
return enableColorsParam;
}
if (process && process.stdout) {
return process.stdout.isTTY;
}
return false;
}
module.exports = Logger;