Refactor logger and error handling modules

Moved isTrueFromDotEnv to logger.js and updated its usage. Simplified logger import and instantiation across modules. Added errors.js for centralized error exports. Set default error code in DefaultError. Cleaned up unused imports in utils.js.
This commit is contained in:
Gilles Lazures 2026-01-27 04:08:46 +01:00
parent c531f2c82c
commit 2e30763da5
5 changed files with 11 additions and 8 deletions

View File

@ -1,7 +1,7 @@
class DefaultError extends Error {
constructor(code, message, cause, name) {
super(message)
this.code = code
this.code = code || 500
this.name = name || "DefaultError"
this.cause = cause || "Internal Server Error"
this.message = message || "Internal Server Error"

3
errors/errors.js Normal file
View File

@ -0,0 +1,3 @@
module.exports = {
DefaultError: require("./DefaultError")
}

View File

@ -1,6 +1,5 @@
const fs = require("node:fs")
const path = require("node:path")
const utils = require("./utils")
require("colors")
require("dotenv").config({
quiet: true
@ -41,7 +40,7 @@ function write($stream, level, color, content, extraLabels = []) {
function createLogger(root) {
// eslint-disable-next-line no-useless-escape
const fileName = utils.isTrueFromDotEnv("IS_PROD") ? new Date().toLocaleString("fr-FR", { timeZone: "UTC" }).replace(/[\/:]/g, "-").replace(/ /g, "_") : "DEV-LOG"
const fileName = isTrueFromDotEnv("IS_PROD") ? new Date().toLocaleString("fr-FR", { timeZone: "UTC" }).replace(/[\/:]/g, "-").replace(/ /g, "_") : "DEV-LOG"
const logsDir = path.join(root, "logs")
@ -84,6 +83,10 @@ function stripColors(string) {
return string.replace(/\x1B\[[0-9;]*[mK]/g, "")
}
function isTrueFromDotEnv(key) {
return (process.env[key] || "").trim().toLowerCase() === "true"
}
const logger = createLogger(process.cwd())
module.exports = logger

View File

@ -1,6 +1,4 @@
const path = require("node:path")
const Logger = require("./logger")
const logger = Logger.createLogger(path.join(__dirname, ".."))
const logger = require("./logger")
function sendValidationError(req, res, zodResult, type, path, errorConfig) {
const ip = req.headers["x-forwarded-for"] || req.socket.remoteAddress

View File

@ -4,8 +4,7 @@ const app = express()
const cors = require("cors")
const path = require("node:path")
const utils = require("./modules/utils")
const Logger = require("./modules/logger")
const logger = Logger.createLogger(__dirname)
const logger = require("./modules/logger")
const helmet = require("helmet")
const loader = require("./modules/loader")
const DefaultError = require("./errors/DefaultError")