UNPKG

@elsikora/nestjs-crud-automator

Version:

A library for automating the creation of CRUD operations in NestJS.

69 lines (66 loc) 2.26 kB
import { __decorate, __metadata } from '../external/tslib/tslib.es6.js'; import { Injectable, ConsoleLogger } from '@nestjs/common'; import { config } from 'dotenv'; var LoggerUtility_1; config(); /** * Custom logger that extends NestJS's ConsoleLogger with environment-based log level filtering */ let LoggerUtility = class LoggerUtility extends 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] ?? "none"; 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"]; } } } }; LoggerUtility = LoggerUtility_1 = __decorate([ Injectable(), __metadata("design:paramtypes", [String]) ], LoggerUtility); export { LoggerUtility }; //# sourceMappingURL=logger.utility.js.map