Refactor el módulo logger para eliminar la carga manual de .env y simplificar la detección de compilación

This commit is contained in:
2025-10-11 20:15:45 -05:00
parent a748563c13
commit 1ca6fc4e89

View File

@@ -1,31 +1,13 @@
import fs from "fs";
import path from "path";
import dotenv from "dotenv";
import pino from "pino"; import pino from "pino";
// 🩹 Extender el tipo global de process para evitar error de TS // Detecta si el proceso está compilado (pkg o Bun)
declare global { const isCompiled =
namespace NodeJS { // @ts-expect-error pkg no existe en los tipos de Node, pero puede estar en runtime
interface Process { !!process.pkg ||
pkg?: any; !!process.env.BUN_COMPILED ||
BUN_COMPILED?: boolean; process.execPath.includes("bun");
}
}
}
// 🔹 Cargar .env manualmente si existe // Solo usa pino-pretty en desarrollo y cuando no está compilado
const envPath = path.resolve(process.cwd(), ".env");
if (fs.existsSync(envPath)) {
dotenv.config({ path: envPath });
console.log("✅ .env cargado desde", envPath);
} else {
console.warn("⚠️ No se encontró archivo .env, usando variables del entorno");
}
// 🔹 Detectar si está compilado con Bun o pkg
const isCompiled = !!process.pkg || !!process.env.BUN_COMPILED;
// 🔹 Configurar transporte solo si NO estamos en producción y NO es compilado
const usePretty = process.env.NODE_ENV !== "production" && !isCompiled; const usePretty = process.env.NODE_ENV !== "production" && !isCompiled;
export const logger = pino({ export const logger = pino({
@@ -41,7 +23,9 @@ export const logger = pino({
} }
: undefined, : undefined,
formatters: { formatters: {
level: (label) => ({ level: label }), level(label) {
return { level: label };
},
}, },
}); });