lognerd 1.0.5 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,6 +1,8 @@
1
1
  # lognerd
2
2
 
3
- Sistema de logging con colores y escritura a archivo para **Node.js (Backend)** y **Navegador (Frontend)**. Desarrollado con TypeScript y diseñado para ser fácil de usar y configurar. Compatible con Vite, Next.js y otros entornos.
3
+ Sistema de logging universal con colores y escritura a archivo para **Node.js (Backend)** y **Navegador (Frontend)**. Desarrollado con TypeScript y diseñado para ser fácil de usar y configurar. Compatible con Vite, Webpack, Next.js y otros entornos.
4
+
5
+ > **Isomórfico por diseño:** los módulos de Node.js (`fs`, `path`) se cargan mediante `await import()` solo en entorno servidor. En el navegador, el logger usa exclusivamente `console.log`, `console.warn` y `console.error` — sin importar módulos de Node.js.
4
6
 
5
7
  ## 🚀 Instalación
6
8
 
@@ -84,13 +86,14 @@ Esta variable determina si el código se ejecuta en **backend** (Node.js) o **cl
84
86
 
85
87
  - **`LOG_ENVIRONMENT=B`** o **`LOG_ENVIRONMENT=BACKEND`**: Para backend (Node.js)
86
88
  - ✅ Permite escritura de archivos
87
- - ✅ Usa `fs` y `path` de Node.js
89
+ - ✅ Carga `fs` y `path` dinámicamente con `await import()`
88
90
  - ✅ Escritura de logs en archivos locales
89
91
 
90
92
  - **`LOG_ENVIRONMENT=C`** o **`LOG_ENVIRONMENT=CLIENT`**: Para cliente (navegador)
91
93
  - ✅ Deshabilita escritura de archivos automáticamente
92
- - ✅ Solo muestra logs en consola del navegador
93
- - ✅ Compatible con Vite y otros bundlers
94
+ - ✅ Solo usa `console.log`, `console.warn`, `console.error` del navegador
95
+ - ✅ Nunca importa módulos de Node.js (`fs`, `path`)
96
+ - ✅ Compatible con Vite, Webpack y otros bundlers
94
97
 
95
98
  **Detección automática:**
96
99
  Si no se configura `LOG_ENVIRONMENT`, se detecta automáticamente:
@@ -193,7 +196,10 @@ NODE_ENV=production LOGNERD_LEVEL=WARN
193
196
 
194
197
  ## 🎨 Características
195
198
 
196
- - ✅ **Soporte Backend y Frontend**: Funciona en Node.js y navegador
199
+ - ✅ **Isomórfico (Node.js + Browser)**: Funciona en backend y navegador con la misma API
200
+ - ✅ **Importaciones dinámicas**: `fs` y `path` se cargan con `await import()` solo en Node.js
201
+ - ✅ **Browser-safe**: En navegador solo usa `console.log`/`console.warn`/`console.error`, sin importar módulos de Node
202
+ - ✅ **Tree-shaking**: `"sideEffects": false` y campo `"browser"` en `package.json` para Vite/Webpack
197
203
  - ✅ **Niveles de log**: ERROR, WARN, INFO, DEBUG
198
204
  - ✅ **Colores en consola** para desarrollo (rojo para ERROR, amarillo para WARN, cyan para INFO, magenta para DEBUG)
199
205
  - ✅ **Escritura automática a archivo** (solo en backend, deshabilitada automáticamente en cliente)
@@ -205,7 +211,7 @@ NODE_ENV=production LOGNERD_LEVEL=WARN
205
211
  - ✅ **Patrón Singleton**: Uso directo sin crear instancias
206
212
  - ✅ **TypeScript** con tipos completos
207
213
  - ✅ **Sin dependencias externas** (solo usa módulos nativos)
208
- - ✅ **Compatible con Vite**: Soporte para variables `VITE_*`
214
+ - ✅ **Compatible con Vite y Webpack**: Soporte para variables `VITE_*` y tree-shaking
209
215
 
210
216
  ## 📝 Ejemplos
211
217
 
@@ -328,11 +334,49 @@ Cuando un archivo de log alcanza el tamaño máximo configurado (`maxFileSize`),
328
334
 
329
335
  **Nota:** La rotación de archivos solo funciona en **backend** (Node.js). En **cliente** (navegador), la escritura de archivos está deshabilitada.
330
336
 
337
+ ## 📦 Compatibilidad con Bundlers
338
+
339
+ lognerd está diseñado para funcionar correctamente con bundlers modernos sin configuración adicional.
340
+
341
+ ### Vite / Webpack / Rollup
342
+
343
+ El `package.json` incluye:
344
+
345
+ ```json
346
+ {
347
+ "sideEffects": false,
348
+ "browser": {
349
+ "fs": false,
350
+ "path": false
351
+ }
352
+ }
353
+ ```
354
+
355
+ - **`sideEffects: false`** permite que el bundler elimine código no utilizado (tree-shaking).
356
+ - **`browser`** indica a los bundlers que reemplacen `fs` y `path` con módulos vacíos en builds de navegador.
357
+
358
+ ### Arquitectura interna
359
+
360
+ ```
361
+ ┌─────────────────────────────────────────────────┐
362
+ │ logger.node.ts │
363
+ │ Carga dinámica: await import('fs'/'path') │
364
+ │ Detección: typeof globalThis.window │
365
+ ├────────────────────┬────────────────────────────┤
366
+ │ Node.js (server) │ Browser (client) │
367
+ │ ✅ fs, path │ ❌ fs, path (nunca carga) │
368
+ │ ✅ console.* │ ✅ console.* únicamente │
369
+ │ ✅ file write │ ❌ file write │
370
+ └────────────────────┴────────────────────────────┘
371
+ ```
372
+
373
+ No necesitas configurar aliases, polyfills ni externals. Solo importa y usa.
374
+
331
375
  ## 🐛 Solución de Problemas
332
376
 
333
377
  ### Error: "process is not defined"
334
- - **Causa**: El código se está ejecutando en el navegador sin configurar `LOG_ENVIRONMENT=C`
335
- - **Solución**: Agrega `VITE_LOG_ENVIRONMENT=C` en tu archivo `.env` para Vite, o `LOG_ENVIRONMENT=C` para otros entornos
378
+ - **Causa**: Algunos bundlers eliminan `process` por completo en builds de navegador
379
+ - **Solución**: lognerd detecta la ausencia de `process` automáticamente y funciona solo con `console.*`. Si aún ves este error, agrega `VITE_LOG_ENVIRONMENT=C` en tu `.env` para Vite, o configura tu bundler para definir `process.env` como objeto vacío
336
380
 
337
381
  ### Error: "LOG_ENVIRONMENT está configurado para BACKEND pero se ejecuta en navegador"
338
382
  - **Causa**: `LOG_ENVIRONMENT=B` está configurado pero el código corre en el navegador
@@ -1 +1 @@
1
- {"version":3,"file":"logger.config.d.ts","sourceRoot":"","sources":["../../src/logger/logger.config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAY,MAAM,gBAAgB,CAAC;AA2PxD,eAAO,MAAM,kBAAkB,GAC7B,eAAe,OAAO,CAAC,YAAY,CAAC,KACnC,YAgEF,CAAC"}
1
+ {"version":3,"file":"logger.config.d.ts","sourceRoot":"","sources":["../../src/logger/logger.config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAY,MAAM,gBAAgB,CAAC;AAgNxD,eAAO,MAAM,kBAAkB,GAC7B,eAAe,OAAO,CAAC,YAAY,CAAC,KACnC,YAyCF,CAAC"}
@@ -1,14 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createLoggerConfig = void 0;
4
- // Detectar si estamos en Node.js o en el navegador
5
- const isNode = typeof process !== 'undefined' && process.versions?.node !== undefined;
4
+ const logger_node_1 = require("./logger.node");
6
5
  /**
7
6
  * Detecta el entorno de ejecución (backend o client)
8
7
  * Basado en LOG_ENVIRONMENT o detección automática
9
8
  */
10
9
  const detectRuntimeEnvironment = () => {
11
- // Intentar leer LOG_ENVIRONMENT desde variables de entorno
12
10
  let envValue;
13
11
  try {
14
12
  if (typeof process !== 'undefined' && process.env) {
@@ -18,11 +16,9 @@ const detectRuntimeEnvironment = () => {
18
16
  catch {
19
17
  // process no disponible
20
18
  }
21
- // Si no está en process.env, intentar desde Vite
22
- if (!envValue && !isNode) {
19
+ if (!envValue && !(0, logger_node_1.isNodeEnvironment)()) {
23
20
  envValue = getViteEnv('LOG_ENVIRONMENT');
24
21
  }
25
- // Procesar el valor
26
22
  if (envValue) {
27
23
  const upperValue = envValue.trim().toUpperCase();
28
24
  if (upperValue === 'B' || upperValue === 'BACKEND') {
@@ -32,16 +28,10 @@ const detectRuntimeEnvironment = () => {
32
28
  return 'client';
33
29
  }
34
30
  }
35
- // Detección automática: si estamos en Node.js, asumimos backend
36
- // Si no, asumimos client (navegador)
37
- return isNode ? 'backend' : 'client';
31
+ return (0, logger_node_1.isNodeEnvironment)() ? 'backend' : 'client';
38
32
  };
39
- // Función para obtener variables de entorno de Vite en tiempo de ejecución
40
- // Vite inyecta import.meta.env en tiempo de compilación
41
33
  const getViteEnv = (key) => {
42
34
  try {
43
- // Acceder a import.meta.env de forma segura
44
- // En Vite, esto se reemplaza en tiempo de compilación
45
35
  const meta = globalThis.__VITE_IMPORT_META__ ||
46
36
  (typeof globalThis.import !== 'undefined' ?
47
37
  globalThis.import.meta : null);
@@ -50,22 +40,10 @@ const getViteEnv = (key) => {
50
40
  }
51
41
  }
52
42
  catch {
53
- // Ignorar errores - no estamos en Vite o no está disponible
43
+ // No estamos en Vite
54
44
  }
55
45
  return undefined;
56
46
  };
57
- // Importaciones condicionales solo para Node.js
58
- let fs = null;
59
- let path = null;
60
- if (isNode) {
61
- try {
62
- fs = require('fs');
63
- path = require('path');
64
- }
65
- catch {
66
- // Ignorar si no están disponibles
67
- }
68
- }
69
47
  /**
70
48
  * Lee una variable de entorno y la convierte a boolean
71
49
  * Soporta tanto LOGNERD_* como VITE_LOGNERD_*
@@ -106,7 +84,6 @@ const getEnvLogLevel = (key, defaultValue) => {
106
84
  * Vite solo expone variables que comienzan con VITE_ al código del cliente
107
85
  */
108
86
  const getEnvValue = (key) => {
109
- // Verificar si process existe antes de usarlo (evita errores en navegador)
110
87
  let processEnv;
111
88
  try {
112
89
  if (typeof process !== 'undefined' && process.env) {
@@ -114,30 +91,23 @@ const getEnvValue = (key) => {
114
91
  }
115
92
  }
116
93
  catch {
117
- // process no está disponible (estamos en navegador)
118
94
  processEnv = undefined;
119
95
  }
120
- // Para Node.js
121
- if (isNode && processEnv) {
122
- // Primero intentar con prefijo VITE_ (por si acaso)
96
+ if ((0, logger_node_1.isNodeEnvironment)() && processEnv) {
123
97
  const viteKey = `VITE_${key}`;
124
98
  if (processEnv[viteKey] !== undefined) {
125
99
  return processEnv[viteKey];
126
100
  }
127
- // Luego intentar sin prefijo
128
101
  if (processEnv[key] !== undefined) {
129
102
  return processEnv[key];
130
103
  }
131
104
  }
132
- // Para Vite (navegador) - intentar obtener variables de Vite
133
- // Solo si no estamos en Node.js
134
- if (!isNode) {
105
+ if (!(0, logger_node_1.isNodeEnvironment)()) {
135
106
  const viteKey = `VITE_${key}`;
136
107
  const viteValue = getViteEnv(viteKey);
137
108
  if (viteValue !== undefined) {
138
109
  return String(viteValue);
139
110
  }
140
- // También intentar sin prefijo
141
111
  const directValue = getViteEnv(key);
142
112
  if (directValue !== undefined) {
143
113
  return String(directValue);
@@ -151,16 +121,13 @@ const getEnvValue = (key) => {
151
121
  */
152
122
  const getConfigFromEnv = () => {
153
123
  const config = {};
154
- // Nivel de log
155
124
  const levelValue = getEnvValue('LOGNERD_LEVEL');
156
125
  if (levelValue) {
157
126
  config.level = getEnvLogLevel('LOGNERD_LEVEL', 'INFO');
158
127
  }
159
- // Entorno (compatible con NODE_ENV, LOGNERD_ENVIRONMENT y VITE_LOGNERD_ENVIRONMENT)
160
128
  let nodeEnv;
161
129
  try {
162
- if (!isNode) {
163
- // En el navegador, intentar obtener de Vite
130
+ if (!(0, logger_node_1.isNodeEnvironment)()) {
164
131
  nodeEnv = getViteEnv('MODE') || getViteEnv('NODE_ENV');
165
132
  }
166
133
  else if (typeof process !== 'undefined' && process.env) {
@@ -168,7 +135,6 @@ const getConfigFromEnv = () => {
168
135
  }
169
136
  }
170
137
  catch {
171
- // Ignorar errores si process no está disponible
172
138
  nodeEnv = undefined;
173
139
  }
174
140
  const environment = (getEnvValue('LOGNERD_ENVIRONMENT') ||
@@ -177,46 +143,40 @@ const getConfigFromEnv = () => {
177
143
  if (environment === 'development' || environment === 'production') {
178
144
  config.environment = environment;
179
145
  }
180
- // Habilitar consola
181
146
  const enableConsoleValue = getEnvValue('LOGNERD_ENABLE_CONSOLE');
182
147
  if (enableConsoleValue !== undefined) {
183
148
  config.enableConsole = getEnvBoolean('LOGNERD_ENABLE_CONSOLE', true);
184
149
  }
185
- // Habilitar archivo
186
150
  const enableFileValue = getEnvValue('LOGNERD_ENABLE_FILE');
187
151
  if (enableFileValue !== undefined) {
188
152
  config.enableFile = getEnvBoolean('LOGNERD_ENABLE_FILE', true);
189
153
  }
190
- // Ruta del archivo
191
154
  const filePathValue = getEnvValue('LOGNERD_FILE_PATH');
192
155
  if (filePathValue) {
193
156
  config.filePath = filePathValue;
194
157
  }
195
- // Tamaño máximo del archivo en MB
196
158
  const maxFileSizeValue = getEnvValue('LOGNERD_MAX_FILE_SIZE');
197
159
  if (maxFileSizeValue !== undefined) {
198
160
  config.maxFileSize = getEnvNumber('LOGNERD_MAX_FILE_SIZE', 10);
199
161
  }
200
- // Número máximo de archivos
201
162
  const maxFilesValue = getEnvValue('LOGNERD_MAX_FILES');
202
163
  if (maxFilesValue !== undefined) {
203
164
  config.maxFiles = getEnvNumber('LOGNERD_MAX_FILES', 5);
204
165
  }
205
166
  return config;
206
167
  };
207
- // Obtener el directorio de trabajo (solo en Node.js)
208
168
  const getDefaultFilePath = () => {
209
- if (isNode && path) {
169
+ if ((0, logger_node_1.isNodeEnvironment)()) {
210
170
  try {
211
- if (typeof process !== 'undefined' && process.cwd) {
212
- return path.join(process.cwd(), 'logs', 'app.log');
213
- }
171
+ const p = (0, logger_node_1.getPath)();
172
+ if (p)
173
+ return p.join(process.cwd(), 'logs', 'app.log');
174
+ return `${process.cwd()}/logs/app.log`;
214
175
  }
215
176
  catch {
216
- // Fallback si process.cwd() no está disponible
177
+ // Fallback
217
178
  }
218
179
  }
219
- // En el navegador, no podemos escribir archivos, así que retornamos una ruta relativa
220
180
  return './logs/app.log';
221
181
  };
222
182
  const defaultConfig = {
@@ -225,25 +185,20 @@ const defaultConfig = {
225
185
  enableFile: true,
226
186
  filePath: getDefaultFilePath(),
227
187
  environment: 'development',
228
- runtimeEnvironment: 'backend', // Se sobrescribirá con detectRuntimeEnvironment()
229
- maxFileSize: 10, // 10MB
188
+ runtimeEnvironment: 'backend',
189
+ maxFileSize: 10,
230
190
  maxFiles: 5,
231
191
  };
232
192
  const createLoggerConfig = (customConfig) => {
233
- // Detectar el entorno de ejecución primero
234
193
  const runtimeEnv = detectRuntimeEnvironment();
235
- // Primero leer desde variables de entorno
236
194
  const envConfig = getConfigFromEnv();
237
- // Combinar: defaults -> env -> customConfig (customConfig tiene prioridad)
238
195
  const config = {
239
196
  ...defaultConfig,
240
197
  runtimeEnvironment: runtimeEnv,
241
198
  ...envConfig,
242
199
  ...customConfig,
243
200
  };
244
- // Validar y ajustar según el entorno de ejecución
245
201
  if (config.runtimeEnvironment === 'client') {
246
- // En cliente (navegador), deshabilitar escritura de archivos
247
202
  if (config.enableFile) {
248
203
  console.warn('[lognerd] ⚠️ LOG_ENVIRONMENT está configurado para CLIENT (C). ' +
249
204
  'La escritura de archivos está deshabilitada en el navegador. ' +
@@ -252,37 +207,18 @@ const createLoggerConfig = (customConfig) => {
252
207
  }
253
208
  }
254
209
  else if (config.runtimeEnvironment === 'backend') {
255
- // En backend, asegurar que tenemos acceso a fs
256
- if (config.enableFile && !isNode) {
210
+ if (config.enableFile && !(0, logger_node_1.isNodeEnvironment)()) {
257
211
  console.error('[lognerd] ❌ ERROR: LOG_ENVIRONMENT está configurado para BACKEND (B) ' +
258
212
  'pero el código se está ejecutando en el navegador. ' +
259
213
  'Configure LOG_ENVIRONMENT=C para cliente o corrija su configuración.');
260
214
  config.enableFile = false;
261
215
  }
262
216
  }
263
- // En producción, deshabilitar consola pero mantener archivo
264
- // (solo si no se especificó explícitamente enableConsole)
265
217
  if (config.environment === 'production' && customConfig?.enableConsole === undefined && envConfig.enableConsole === undefined) {
266
218
  config.enableConsole = false;
267
219
  config.enableFile = true;
268
220
  }
269
- // Asegurar que el directorio de logs existe (solo en Node.js)
270
- if (config.enableFile && config.filePath && isNode && fs && path) {
271
- try {
272
- const logDir = path.dirname(config.filePath);
273
- if (!fs.existsSync(logDir)) {
274
- fs.mkdirSync(logDir, { recursive: true });
275
- }
276
- }
277
- catch (error) {
278
- // En el navegador, no podemos crear directorios, así que deshabilitamos el archivo
279
- if (!isNode) {
280
- config.enableFile = false;
281
- }
282
- }
283
- }
284
- else if (!isNode && config.enableFile) {
285
- // En el navegador, deshabilitar escritura en archivo por defecto
221
+ if (!(0, logger_node_1.isNodeEnvironment)() && config.enableFile) {
286
222
  config.enableFile = false;
287
223
  }
288
224
  return config;
@@ -1 +1 @@
1
- {"version":3,"file":"logger.config.js","sourceRoot":"","sources":["../../src/logger/logger.config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logger.config.js","sourceRoot":"","sources":["../../src/logger/logger.config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ type FsModule = typeof import('fs');
2
+ type PathModule = typeof import('path');
3
+ export declare const isNodeEnvironment: () => boolean;
4
+ export declare const ensureNodeModules: () => Promise<void>;
5
+ export declare const getFs: () => FsModule | null;
6
+ export declare const getPath: () => PathModule | null;
7
+ export {};
8
+ //# sourceMappingURL=logger.node.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.node.d.ts","sourceRoot":"","sources":["../../src/logger/logger.node.ts"],"names":[],"mappings":"AAAA,KAAK,QAAQ,GAAG,cAAc,IAAI,CAAC,CAAC;AACpC,KAAK,UAAU,GAAG,cAAc,MAAM,CAAC,CAAC;AAcxC,eAAO,MAAM,iBAAiB,QAAO,OAAiB,CAAC;AAEvD,eAAO,MAAM,iBAAiB,QAAa,OAAO,CAAC,IAAI,CAgBtD,CAAC;AAEF,eAAO,MAAM,KAAK,QAAO,QAAQ,GAAG,IAAW,CAAC;AAEhD,eAAO,MAAM,OAAO,QAAO,UAAU,GAAG,IAAa,CAAC"}
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.getPath = exports.getFs = exports.ensureNodeModules = exports.isNodeEnvironment = void 0;
37
+ const hasBrowserGlobals = typeof globalThis.window !== 'undefined';
38
+ const isNode = !hasBrowserGlobals &&
39
+ typeof process !== 'undefined' &&
40
+ process.versions?.node !== undefined;
41
+ let _fs = null;
42
+ let _path = null;
43
+ let _loadPromise = null;
44
+ const isNodeEnvironment = () => isNode;
45
+ exports.isNodeEnvironment = isNodeEnvironment;
46
+ const ensureNodeModules = async () => {
47
+ if (!isNode || (_fs && _path))
48
+ return;
49
+ if (!_loadPromise) {
50
+ _loadPromise = (async () => {
51
+ try {
52
+ _fs = await Promise.resolve().then(() => __importStar(require('fs')));
53
+ _path = await Promise.resolve().then(() => __importStar(require('path')));
54
+ }
55
+ catch {
56
+ _fs = null;
57
+ _path = null;
58
+ }
59
+ })();
60
+ }
61
+ return _loadPromise;
62
+ };
63
+ exports.ensureNodeModules = ensureNodeModules;
64
+ const getFs = () => _fs;
65
+ exports.getFs = getFs;
66
+ const getPath = () => _path;
67
+ exports.getPath = getPath;
68
+ //# sourceMappingURL=logger.node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.node.js","sourceRoot":"","sources":["../../src/logger/logger.node.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,MAAM,iBAAiB,GACrB,OAAQ,UAAsC,CAAC,MAAM,KAAK,WAAW,CAAC;AAExE,MAAM,MAAM,GACV,CAAC,iBAAiB;IAClB,OAAO,OAAO,KAAK,WAAW;IAC9B,OAAO,CAAC,QAAQ,EAAE,IAAI,KAAK,SAAS,CAAC;AAEvC,IAAI,GAAG,GAAoB,IAAI,CAAC;AAChC,IAAI,KAAK,GAAsB,IAAI,CAAC;AACpC,IAAI,YAAY,GAAyB,IAAI,CAAC;AAEvC,MAAM,iBAAiB,GAAG,GAAY,EAAE,CAAC,MAAM,CAAC;AAA1C,QAAA,iBAAiB,qBAAyB;AAEhD,MAAM,iBAAiB,GAAG,KAAK,IAAmB,EAAE;IACzD,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC;QAAE,OAAO;IAEtC,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,YAAY,GAAG,CAAC,KAAK,IAAI,EAAE;YACzB,IAAI,CAAC;gBACH,GAAG,GAAG,wDAAa,IAAI,GAAC,CAAC;gBACzB,KAAK,GAAG,wDAAa,MAAM,GAAC,CAAC;YAC/B,CAAC;YAAC,MAAM,CAAC;gBACP,GAAG,GAAG,IAAI,CAAC;gBACX,KAAK,GAAG,IAAI,CAAC;YACf,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;IACP,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC;AAhBW,QAAA,iBAAiB,qBAgB5B;AAEK,MAAM,KAAK,GAAG,GAAoB,EAAE,CAAC,GAAG,CAAC;AAAnC,QAAA,KAAK,SAA8B;AAEzC,MAAM,OAAO,GAAG,GAAsB,EAAE,CAAC,KAAK,CAAC;AAAzC,QAAA,OAAO,WAAkC"}
@@ -2,8 +2,12 @@ import { LoggerConfig } from './logger.types';
2
2
  declare class LoggerService {
3
3
  private config;
4
4
  private logLevels;
5
+ private fileReady;
6
+ private initPromise;
5
7
  constructor(config: LoggerConfig);
8
+ private initFileSystem;
6
9
  private shouldLog;
10
+ private writeToFileAsync;
7
11
  private writeToFile;
8
12
  private rotateLogFileIfNeeded;
9
13
  private cleanOldLogFiles;
@@ -1 +1 @@
1
- {"version":3,"file":"logger.service.d.ts","sourceRoot":"","sources":["../../src/logger/logger.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAsB,MAAM,gBAAgB,CAAC;AAmBlE,cAAM,aAAa;IACjB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,SAAS,CAAkD;gBAEvD,MAAM,EAAE,YAAY;IAIhC,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,WAAW;IAkCnB,OAAO,CAAC,qBAAqB;IA2B7B,OAAO,CAAC,gBAAgB;IA+BxB,OAAO,CAAC,GAAG;IA2CX,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI;IAI5C,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI;IAI3C,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI;IAI3C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI;IAI5C,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI;CAGrD;AAED,OAAO,EAAE,aAAa,EAAE,CAAC"}
1
+ {"version":3,"file":"logger.service.d.ts","sourceRoot":"","sources":["../../src/logger/logger.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAsB,MAAM,gBAAgB,CAAC;AAIlE,cAAM,aAAa;IACjB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,SAAS,CAAkD;IACnE,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,WAAW,CAA8B;gBAErC,MAAM,EAAE,YAAY;YAOlB,cAAc;IAkB5B,OAAO,CAAC,SAAS;YAMH,gBAAgB;IAmB9B,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,qBAAqB;IAwB7B,OAAO,CAAC,gBAAgB;IA4BxB,OAAO,CAAC,GAAG;IAmCX,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI;IAI5C,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI;IAI3C,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI;IAI3C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI;IAI5C,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI;CAOrD;AAED,OAAO,EAAE,aAAa,EAAE,CAAC"}
@@ -2,125 +2,129 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.LoggerService = void 0;
4
4
  const logger_utils_1 = require("./logger.utils");
5
- // Detectar si estamos en Node.js
6
- const isNode = typeof process !== 'undefined' && process.versions?.node !== undefined;
7
- // Importaciones condicionales solo para Node.js
8
- let fs = null;
9
- let path = null;
10
- if (isNode) {
11
- try {
12
- fs = require('fs');
13
- path = require('path');
14
- }
15
- catch {
16
- // Ignorar si no están disponibles
17
- }
18
- }
5
+ const logger_node_1 = require("./logger.node");
19
6
  class LoggerService {
20
7
  constructor(config) {
21
8
  this.logLevels = ['DEBUG', 'INFO', 'WARN', 'ERROR'];
9
+ this.fileReady = false;
10
+ this.initPromise = null;
22
11
  this.config = config;
12
+ if (config.enableFile && (0, logger_node_1.isNodeEnvironment)()) {
13
+ this.initPromise = this.initFileSystem();
14
+ }
15
+ }
16
+ async initFileSystem() {
17
+ await (0, logger_node_1.ensureNodeModules)();
18
+ const fs = (0, logger_node_1.getFs)();
19
+ const path = (0, logger_node_1.getPath)();
20
+ if (!fs || !path || !this.config.filePath)
21
+ return;
22
+ try {
23
+ const logDir = path.dirname(this.config.filePath);
24
+ if (!fs.existsSync(logDir)) {
25
+ fs.mkdirSync(logDir, { recursive: true });
26
+ }
27
+ this.fileReady = true;
28
+ }
29
+ catch {
30
+ this.fileReady = false;
31
+ }
23
32
  }
24
33
  shouldLog(level) {
25
34
  const currentLevelIndex = this.logLevels.indexOf(this.config.level);
26
35
  const messageLevelIndex = this.logLevels.indexOf(level);
27
36
  return messageLevelIndex >= currentLevelIndex;
28
37
  }
29
- writeToFile(entry) {
30
- if (!this.config.enableFile || !this.config.filePath) {
31
- return;
38
+ async writeToFileAsync(entry) {
39
+ if (!this.fileReady && this.initPromise) {
40
+ await this.initPromise;
32
41
  }
33
- // Validar que estamos en backend antes de escribir
34
- if (this.config.runtimeEnvironment === 'client') {
35
- // No intentar escribir en cliente
42
+ if (!this.fileReady)
36
43
  return;
37
- }
38
- // En el navegador, no podemos escribir archivos
39
- if (!isNode || !fs) {
40
- if (this.config.runtimeEnvironment === 'backend') {
41
- console.error('[lognerd] ❌ ERROR: Intento de escribir archivo en backend pero fs no está disponible. ' +
42
- 'Verifique que LOG_ENVIRONMENT=B esté configurado correctamente.');
43
- }
44
+ const fs = (0, logger_node_1.getFs)();
45
+ const path = (0, logger_node_1.getPath)();
46
+ if (!fs || !path || !this.config.filePath)
44
47
  return;
45
- }
46
48
  try {
47
49
  const message = (0, logger_utils_1.formatFileMessage)(entry) + '\n';
48
50
  fs.appendFileSync(this.config.filePath, message, 'utf8');
49
- // Rotación de archivos si es necesario
50
51
  this.rotateLogFileIfNeeded();
51
52
  }
52
53
  catch (error) {
53
- // Fallback: escribir en consola si falla el archivo
54
- console.error('Error escribiendo en archivo de log:', error);
54
+ console.error('[lognerd] Error escribiendo en archivo de log:', error);
55
55
  }
56
56
  }
57
+ writeToFile(entry) {
58
+ if (!this.config.enableFile || !this.config.filePath)
59
+ return;
60
+ if (this.config.runtimeEnvironment === 'client')
61
+ return;
62
+ if (!(0, logger_node_1.isNodeEnvironment)())
63
+ return;
64
+ this.writeToFileAsync(entry).catch((err) => {
65
+ console.error('[lognerd] Error writing to log file:', err);
66
+ });
67
+ }
57
68
  rotateLogFileIfNeeded() {
58
- if (!this.config.filePath || !this.config.maxFileSize || !isNode || !fs || !path) {
69
+ const fs = (0, logger_node_1.getFs)();
70
+ const path = (0, logger_node_1.getPath)();
71
+ if (!this.config.filePath || !this.config.maxFileSize || !fs || !path)
59
72
  return;
60
- }
61
73
  try {
62
74
  const stats = fs.statSync(this.config.filePath);
63
75
  const fileSizeInMB = stats.size / (1024 * 1024);
64
- if (fileSizeInMB >= this.config.maxFileSize && path && fs) {
76
+ if (fileSizeInMB >= this.config.maxFileSize) {
65
77
  const logDir = path.dirname(this.config.filePath);
66
78
  const logFileName = path.basename(this.config.filePath, '.log');
67
79
  const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
68
80
  const rotatedFileName = `${logFileName}-${timestamp}.log`;
69
81
  const rotatedFilePath = path.join(logDir, rotatedFileName);
70
- // Mover archivo actual
71
82
  fs.renameSync(this.config.filePath, rotatedFilePath);
72
- // Limpiar archivos antiguos
73
83
  this.cleanOldLogFiles(logDir, logFileName);
74
84
  }
75
85
  }
76
- catch (error) {
86
+ catch {
77
87
  // Ignorar errores de rotación
78
88
  }
79
89
  }
80
90
  cleanOldLogFiles(logDir, logFileName) {
81
- if (!this.config.maxFiles || !isNode || !fs || !path) {
91
+ const fs = (0, logger_node_1.getFs)();
92
+ const path = (0, logger_node_1.getPath)();
93
+ if (!this.config.maxFiles || !fs || !path)
82
94
  return;
83
- }
84
95
  try {
85
96
  const files = fs.readdirSync(logDir)
86
97
  .filter(file => file.startsWith(logFileName) && file.endsWith('.log'))
87
98
  .map(file => {
88
- const filePath = path && path.join(logDir, file);
99
+ const filePath = path.join(logDir, file);
89
100
  return {
90
101
  name: file,
91
102
  path: filePath,
92
- time: fs && filePath ? fs.statSync(filePath).mtime.getTime() : 0,
103
+ time: fs.statSync(filePath).mtime.getTime(),
93
104
  };
94
105
  })
95
106
  .sort((a, b) => b.time - a.time);
96
- // Eliminar archivos que excedan el máximo
97
107
  if (files.length > this.config.maxFiles) {
98
108
  files.slice(this.config.maxFiles).forEach(file => {
99
- if (fs && file.path) {
100
- fs.unlinkSync(file.path);
101
- }
109
+ fs.unlinkSync(file.path);
102
110
  });
103
111
  }
104
112
  }
105
- catch (error) {
113
+ catch {
106
114
  // Ignorar errores de limpieza
107
115
  }
108
116
  }
109
117
  log(level, message, data) {
110
- if (!this.shouldLog(level)) {
118
+ if (!this.shouldLog(level))
111
119
  return;
112
- }
113
120
  const entry = {
114
121
  timestamp: new Date().toISOString(),
115
122
  level,
116
123
  message,
117
124
  data,
118
125
  };
119
- // Escribir en consola (si está habilitado)
120
126
  if (this.config.enableConsole) {
121
- // En web, usar console nativo con objetos expandibles y colores
122
- if (!isNode) {
123
- // Colores para cada nivel en consola web
127
+ if (!(0, logger_node_1.isNodeEnvironment)()) {
124
128
  const webColors = {
125
129
  ERROR: 'color: #ff4444;',
126
130
  WARN: 'color: #ffaa00;',
@@ -129,7 +133,6 @@ class LoggerService {
129
133
  };
130
134
  const levelTag = `[${level}]`;
131
135
  const colorStyle = webColors[level] || '';
132
- // Usar console.log con %c para aplicar colores y mantener objetos expandibles
133
136
  if (data !== undefined) {
134
137
  console.log(`%c${levelTag}%c ${message}`, colorStyle, '', data);
135
138
  }
@@ -138,11 +141,9 @@ class LoggerService {
138
141
  }
139
142
  }
140
143
  else {
141
- // En Node.js, usar el formato con colores
142
144
  console.log((0, logger_utils_1.formatConsoleMessage)(level, message, data));
143
145
  }
144
146
  }
145
- // Escribir en archivo (siempre, incluso en producción)
146
147
  this.writeToFile(entry);
147
148
  }
148
149
  error(message, data) {
@@ -159,6 +160,9 @@ class LoggerService {
159
160
  }
160
161
  updateConfig(newConfig) {
161
162
  this.config = { ...this.config, ...newConfig };
163
+ if (newConfig.enableFile && (0, logger_node_1.isNodeEnvironment)() && !this.fileReady) {
164
+ this.initPromise = this.initFileSystem();
165
+ }
162
166
  }
163
167
  }
164
168
  exports.LoggerService = LoggerService;
@@ -1 +1 @@
1
- {"version":3,"file":"logger.service.js","sourceRoot":"","sources":["../../src/logger/logger.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logger.service.js","sourceRoot":"","sources":["../../src/logger/logger.service.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,16 +1,13 @@
1
1
  {
2
2
  "name": "lognerd",
3
- "version": "1.0.5",
3
+ "version": "1.1.0",
4
4
  "description": "Sistema de logging con colores y escritura a archivo",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
- "scripts": {
8
- "build": "tsc",
9
- "prepublishOnly": "pnpm run build",
10
- "dev": "tsc --watch",
11
- "test": "ts-node test-logger.ts",
12
- "test:env": "ts-node test-env.ts",
13
- "test:singleton": "ts-node test-singleton.ts"
7
+ "sideEffects": false,
8
+ "browser": {
9
+ "fs": false,
10
+ "path": false
14
11
  },
15
12
  "keywords": [
16
13
  "logger",
@@ -43,5 +40,12 @@
43
40
  "files": [
44
41
  "dist",
45
42
  "README.md"
46
- ]
43
+ ],
44
+ "scripts": {
45
+ "build": "tsc",
46
+ "dev": "tsc --watch",
47
+ "test": "ts-node test-logger.ts",
48
+ "test:env": "ts-node test-env.ts",
49
+ "test:singleton": "ts-node test-singleton.ts"
50
+ }
47
51
  }