From 2e30763da588a4d83413c67cdceca42fc0ef207b Mon Sep 17 00:00:00 2001 From: azures04 Date: Tue, 27 Jan 2026 04:08:46 +0100 Subject: [PATCH] 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. --- errors/DefaultError.js | 2 +- errors/errors.js | 3 +++ modules/logger.js | 7 +++++-- modules/utils.js | 4 +--- server.js | 3 +-- 5 files changed, 11 insertions(+), 8 deletions(-) create mode 100644 errors/errors.js diff --git a/errors/DefaultError.js b/errors/DefaultError.js index 4969210..4d8d197 100644 --- a/errors/DefaultError.js +++ b/errors/DefaultError.js @@ -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" diff --git a/errors/errors.js b/errors/errors.js new file mode 100644 index 0000000..da6ff96 --- /dev/null +++ b/errors/errors.js @@ -0,0 +1,3 @@ +module.exports = { + DefaultError: require("./DefaultError") +} \ No newline at end of file diff --git a/modules/logger.js b/modules/logger.js index 7026d44..58e15da 100644 --- a/modules/logger.js +++ b/modules/logger.js @@ -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 \ No newline at end of file diff --git a/modules/utils.js b/modules/utils.js index 193ee0d..ad2aea9 100644 --- a/modules/utils.js +++ b/modules/utils.js @@ -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 diff --git a/server.js b/server.js index ae30264..dcbfb35 100644 --- a/server.js +++ b/server.js @@ -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")