@elsikora/nestjs-crud-automator
Version:
A library for automating the creation of CRUD operations in NestJS.
69 lines (66 loc) • 2.26 kB
JavaScript
;
var tslib_es6 = require('../external/tslib/tslib.es6.js');
var common = require('@nestjs/common');
var dotenv = require('dotenv');
var LoggerUtility_1;
dotenv.config();
/**
* Custom logger that extends NestJS's ConsoleLogger with environment-based log level filtering
*/
exports.LoggerUtility = class LoggerUtility extends common.ConsoleLogger {
static { LoggerUtility_1 = this; }
static ENV_LOG_LEVEL_KEY = "NCD_LOG_LEVEL";
constructor(context) {
super(context ?? "DefaultContext", {
logLevels: LoggerUtility_1.getLogLevelsFromEnv(),
});
}
/**
* Static method to create a logger with a specific context
* @param {string} context - The context name for the logger
* @returns {LoggerUtility} A new logger instance with the specified context
*/
static getLogger(context) {
return new LoggerUtility_1(`NestJS-Crud-Automator/${context ?? "Core"}`);
}
/**
* Get the current log level from environment variable
* @returns {Array<LogLevel>} Array of enabled log levels based on environment configuration
* @private
*/
static getLogLevelsFromEnv() {
const logLevel = process.env[this.ENV_LOG_LEVEL_KEY];
if (!logLevel) {
// Default log levels if not specified in env
return ["error", "warn", "log"];
}
switch (logLevel.toLowerCase()) {
case "debug": {
return ["error", "warn", "log", "debug"];
}
case "error": {
return ["error"];
}
case "log": {
return ["error", "warn", "log"];
}
case "none": {
return [];
}
case "verbose": {
return ["error", "warn", "log", "debug", "verbose"];
}
case "warn": {
return ["error", "warn"];
}
default: {
return ["error", "warn", "log"];
}
}
}
};
exports.LoggerUtility = LoggerUtility_1 = tslib_es6.__decorate([
common.Injectable(),
tslib_es6.__metadata("design:paramtypes", [String])
], exports.LoggerUtility);
//# sourceMappingURL=logger.utility.js.map