azures04 2e30763da5 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.
2026-01-27 04:08:46 +01:00

33 lines
985 B
JavaScript

const logger = require("./logger")
function sendValidationError(req, res, zodResult, type, path, errorConfig) {
const ip = req.headers["x-forwarded-for"] || req.socket.remoteAddress
logger.warn(`Validation failed for ${req.method.cyan} ${path.cyan.bold} (${type}) ` + `<IP:${ip}>`.bold, ["WEB", "yellow"])
const response = {
success: false,
message: errorConfig.message || `Validation failed in ${type}`,
errors: zodResult.error.issues.map(e => ({
field: e.path.join("."),
message: e.message
}))
}
if (errorConfig) {
const extras = { ...errorConfig }
delete extras.status
delete extras.message
Object.assign(response, extras)
}
return res.status(errorConfig.status || 400).json(response)
}
function isTrueFromDotEnv(key) {
return (process.env[key] || "").trim().toLowerCase() === "true"
}
module.exports = {
sendValidationError,
isTrueFromDotEnv
}