@viplance/nestjs-logger 0.4.9 → 0.5.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.
@@ -32,5 +32,5 @@ export declare class LogService implements LoggerService, OnApplicationShutdown
32
32
  private getNewObjectId;
33
33
  private getConnection;
34
34
  private parseContext;
35
- private checkRecords;
35
+ private cleanUpLogs;
36
36
  }
@@ -60,7 +60,8 @@ let LogService = LogService_1 = class LogService {
60
60
  if (LogService_1.timer) {
61
61
  clearInterval(LogService_1.timer);
62
62
  }
63
- LogService_1.timer = (0, timers_1.setInterval)(this.checkRecords, 1000 * 60 * 60); // check one time per hour
63
+ LogService_1.timer = (0, timers_1.setInterval)(() => this.cleanUpLogs(), 1000 * 60); // check one time per minute
64
+ // LogService.timer = setInterval(() => this.cleanUpLogs(), 1000 * 60 * 60); // check one time per hour
64
65
  return LogService_1.connection;
65
66
  }
66
67
  setOptions(options) {
@@ -282,22 +283,109 @@ let LogService = LogService_1 = class LogService {
282
283
  }
283
284
  return res;
284
285
  }
285
- async checkRecords() {
286
- var _a, _b;
287
- if ((_a = LogService_1.options) === null || _a === void 0 ? void 0 : _a.maxSize) {
288
- const latest = await this.getConnection().find(LogService_1.Log, {
286
+ async cleanUpLogs() {
287
+ var _a, _b, _c;
288
+ const options = LogService_1.options;
289
+ if (!options)
290
+ return;
291
+ const table = LogService_1.Log;
292
+ const connection = this.getConnection();
293
+ const deletedIds = [];
294
+ // maxAge (days)
295
+ if (options.maxAge) {
296
+ const cutOffDate = new Date();
297
+ cutOffDate.setDate(cutOffDate.getDate() - options.maxAge);
298
+ if (LogService_1.connection) {
299
+ // Collect IDs before deleting for DB
300
+ const toDelete = await connection.find(table, {
301
+ where: ((_a = options.database) === null || _a === void 0 ? void 0 : _a.type) === 'mongodb'
302
+ ? { updatedAt: { $lt: cutOffDate } }
303
+ : { updatedAt: (0, typeorm_1.LessThan)(cutOffDate) },
304
+ select: ['_id'],
305
+ });
306
+ if (toDelete.length > 0) {
307
+ const ids = toDelete.map((item) => item._id);
308
+ deletedIds.push(...ids);
309
+ if (((_b = options.database) === null || _b === void 0 ? void 0 : _b.type) === 'mongodb') {
310
+ await LogService_1.connection.manager.delete(table, {
311
+ _id: { $in: ids },
312
+ });
313
+ }
314
+ else {
315
+ await LogService_1.connection
316
+ .getRepository(table)
317
+ .createQueryBuilder()
318
+ .delete()
319
+ .where('_id IN (:...ids)', { ids })
320
+ .execute();
321
+ }
322
+ }
323
+ }
324
+ else {
325
+ const ids = await this.memoryDbService.prune(table, (item) => new Date(item.updatedAt) < cutOffDate);
326
+ deletedIds.push(...ids);
327
+ }
328
+ }
329
+ // maxRecords (count)
330
+ if (options.maxRecords) {
331
+ const all = await connection.find(table, {
289
332
  order: { updatedAt: 'DESC' },
290
- take: (_b = LogService_1.options) === null || _b === void 0 ? void 0 : _b.maxSize,
291
333
  select: ['_id'],
292
334
  });
293
- const latestIds = latest.map((item) => item.id);
294
- await LogService_1.connection
295
- .getRepository(LogService_1.Log)
296
- .createQueryBuilder()
297
- .delete()
298
- .from(LogService_1.Log)
299
- .where('_id NOT IN (:...ids)', { ids: latestIds })
300
- .execute();
335
+ if (all.length > options.maxRecords) {
336
+ const toKeep = all.slice(0, options.maxRecords).map((item) => item._id);
337
+ const toDelete = all.slice(options.maxRecords).map((item) => item._id);
338
+ deletedIds.push(...toDelete);
339
+ if (LogService_1.connection) {
340
+ if (((_c = options.database) === null || _c === void 0 ? void 0 : _c.type) === 'mongodb') {
341
+ await LogService_1.connection.manager.delete(table, {
342
+ _id: { $in: toDelete },
343
+ });
344
+ }
345
+ else {
346
+ await LogService_1.connection
347
+ .getRepository(table)
348
+ .createQueryBuilder()
349
+ .delete()
350
+ .where('_id IN (:...ids)', { ids: toDelete })
351
+ .execute();
352
+ }
353
+ }
354
+ else {
355
+ await this.memoryDbService.prune(table, (item) => toDelete.includes(item._id));
356
+ }
357
+ }
358
+ }
359
+ // maxSize (megabytes) - Best effort for MemoryDB
360
+ if (options.maxSize) {
361
+ if (!LogService_1.connection) {
362
+ // Memory DB size estimate
363
+ const items = this.memoryDbService.getTable(table);
364
+ const sorted = [...items].sort((a, b) => new Date(b.updatedAt).getTime() - new Date(a.updatedAt).getTime());
365
+ let totalSize = 0;
366
+ const keepIds = [];
367
+ const removeIds = [];
368
+ for (const item of sorted) {
369
+ const size = JSON.stringify(item).length; // Rough size in bytes
370
+ if ((totalSize + size) / 1024 / 1024 < options.maxSize) {
371
+ totalSize += size;
372
+ keepIds.push(item._id);
373
+ }
374
+ else {
375
+ removeIds.push(item._id);
376
+ }
377
+ }
378
+ if (removeIds.length > 0) {
379
+ const ids = await this.memoryDbService.prune(table, (item) => removeIds.includes(item._id));
380
+ deletedIds.push(...ids);
381
+ }
382
+ }
383
+ }
384
+ if (deletedIds.length > 0) {
385
+ this.wsService.sendMessage({
386
+ action: 'delete',
387
+ data: { ids: deletedIds },
388
+ });
301
389
  }
302
390
  }
303
391
  };
@@ -1 +1 @@
1
- {"version":3,"file":"log.service.js","sourceRoot":"","sources":["../../src/services/log.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"log.service.js","sourceRoot":"","sources":["../../src/services/log.service.ts"],"names":[],"mappings":"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"}
@@ -21,5 +21,7 @@ export declare class MemoryDbService {
21
21
  }): Promise<any>;
22
22
  private findIndex;
23
23
  private partialEqual;
24
+ prune(entity: EntitySchema, filter: (item: any) => boolean): Promise<any[]>;
25
+ getTable(entity: EntitySchema): any[];
24
26
  private getTableName;
25
27
  }
@@ -194,6 +194,16 @@ let MemoryDbService = class MemoryDbService {
194
194
  }
195
195
  return true;
196
196
  }
197
+ async prune(entity, filter) {
198
+ const table = this.getTableName(entity);
199
+ const deleted = this.db[table].filter(filter).map((item) => item._id);
200
+ this.db[table] = this.db[table].filter((item) => !filter(item));
201
+ return Promise.resolve(deleted);
202
+ }
203
+ getTable(entity) {
204
+ const table = this.getTableName(entity);
205
+ return this.db[table];
206
+ }
197
207
  };
198
208
  exports.MemoryDbService = MemoryDbService;
199
209
  exports.MemoryDbService = MemoryDbService = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"memory-db.service.js","sourceRoot":"","sources":["../../src/services/memory-db.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memory-db.service.js","sourceRoot":"","sources":["../../src/services/memory-db.service.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@viplance/nestjs-logger",
3
- "version": "0.4.9",
3
+ "version": "0.5.0",
4
4
  "description": "NestJS internal logging system",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -353,10 +353,20 @@ function handleWsUpdate(updatedLog) {
353
353
  checkAndUpdatePopup();
354
354
  }
355
355
 
356
- function handleWsDelete(id) {
357
- const idx = logs.findIndex((l) => l._id === id);
358
- if (idx > -1) {
359
- logs.splice(idx, 1);
356
+ function handleWsDelete(idOrIds) {
357
+ const ids = Array.isArray(idOrIds) ? idOrIds : [idOrIds];
358
+ let changed = false;
359
+
360
+ ids.forEach((id) => {
361
+ const idx = logs.findIndex((l) => l._id === id);
362
+
363
+ if (idx > -1) {
364
+ logs.splice(idx, 1);
365
+ changed = true;
366
+ }
367
+ });
368
+
369
+ if (changed) {
360
370
  checkElementsVisibility();
361
371
  renderLogs();
362
372
  checkAndUpdatePopup();
@@ -90,7 +90,7 @@ async function connectWebSocket() {
90
90
  handleWsUpdate(data['data']);
91
91
  break;
92
92
  case 'delete':
93
- handleWsDelete(data['data']._id);
93
+ handleWsDelete(data['data']._id || data['data'].ids);
94
94
  break;
95
95
  }
96
96
  }
@@ -13,6 +13,7 @@ import {
13
13
  EntitySchema,
14
14
  Like,
15
15
  In,
16
+ LessThan,
16
17
  } from 'typeorm';
17
18
  import { createLogEntity } from '../entities/log.entity';
18
19
  import { ExecutionContextHost } from '@nestjs/core/helpers/execution-context-host';
@@ -81,7 +82,8 @@ export class LogService implements LoggerService, OnApplicationShutdown {
81
82
  clearInterval(LogService.timer);
82
83
  }
83
84
 
84
- LogService.timer = setInterval(this.checkRecords, 1000 * 60 * 60); // check one time per hour
85
+ LogService.timer = setInterval(() => this.cleanUpLogs(), 1000 * 60); // check one time per minute
86
+ // LogService.timer = setInterval(() => this.cleanUpLogs(), 1000 * 60 * 60); // check one time per hour
85
87
 
86
88
  return LogService.connection;
87
89
  }
@@ -366,23 +368,127 @@ export class LogService implements LoggerService, OnApplicationShutdown {
366
368
  return res;
367
369
  }
368
370
 
369
- private async checkRecords() {
370
- if (LogService.options?.maxSize) {
371
- const latest = await this.getConnection().find(LogService.Log, {
371
+ private async cleanUpLogs() {
372
+ const options = LogService.options;
373
+ if (!options) return;
374
+
375
+ const table = LogService.Log;
376
+ const connection = this.getConnection();
377
+
378
+ const deletedIds: any[] = [];
379
+
380
+ // maxAge (days)
381
+ if (options.maxAge) {
382
+ const cutOffDate = new Date();
383
+ cutOffDate.setDate(cutOffDate.getDate() - options.maxAge);
384
+
385
+ if (LogService.connection) {
386
+ // Collect IDs before deleting for DB
387
+ const toDelete = await connection.find(table, {
388
+ where:
389
+ options.database?.type === 'mongodb'
390
+ ? { updatedAt: { $lt: cutOffDate } }
391
+ : { updatedAt: LessThan(cutOffDate) },
392
+ select: ['_id'],
393
+ });
394
+
395
+ if (toDelete.length > 0) {
396
+ const ids = toDelete.map((item) => item._id);
397
+ deletedIds.push(...ids);
398
+
399
+ if (options.database?.type === 'mongodb') {
400
+ await LogService.connection.manager.delete(table, {
401
+ _id: { $in: ids },
402
+ });
403
+ } else {
404
+ await LogService.connection
405
+ .getRepository(table)
406
+ .createQueryBuilder()
407
+ .delete()
408
+ .where('_id IN (:...ids)', { ids })
409
+ .execute();
410
+ }
411
+ }
412
+ } else {
413
+ const ids = await this.memoryDbService.prune(
414
+ table,
415
+ (item) => new Date(item.updatedAt) < cutOffDate
416
+ );
417
+ deletedIds.push(...ids);
418
+ }
419
+ }
420
+
421
+ // maxRecords (count)
422
+ if (options.maxRecords) {
423
+ const all = await connection.find(table, {
372
424
  order: { updatedAt: 'DESC' },
373
- take: LogService.options?.maxSize,
374
425
  select: ['_id'],
375
426
  });
376
427
 
377
- const latestIds = latest.map((item) => item.id);
428
+ if (all.length > options.maxRecords) {
429
+ const toKeep = all.slice(0, options.maxRecords).map((item) => item._id);
430
+ const toDelete = all.slice(options.maxRecords).map((item) => item._id);
431
+
432
+ deletedIds.push(...toDelete);
433
+
434
+ if (LogService.connection) {
435
+ if (options.database?.type === 'mongodb') {
436
+ await LogService.connection.manager.delete(table, {
437
+ _id: { $in: toDelete },
438
+ });
439
+ } else {
440
+ await LogService.connection
441
+ .getRepository(table)
442
+ .createQueryBuilder()
443
+ .delete()
444
+ .where('_id IN (:...ids)', { ids: toDelete })
445
+ .execute();
446
+ }
447
+ } else {
448
+ await this.memoryDbService.prune(table, (item) =>
449
+ toDelete.includes(item._id)
450
+ );
451
+ }
452
+ }
453
+ }
454
+
455
+ // maxSize (megabytes) - Best effort for MemoryDB
456
+ if (options.maxSize) {
457
+ if (!LogService.connection) {
458
+ // Memory DB size estimate
459
+ const items = this.memoryDbService.getTable(table);
460
+ const sorted = [...items].sort(
461
+ (a, b) =>
462
+ new Date(b.updatedAt).getTime() - new Date(a.updatedAt).getTime()
463
+ );
464
+ let totalSize = 0;
465
+ const keepIds: any[] = [];
466
+ const removeIds: any[] = [];
467
+
468
+ for (const item of sorted) {
469
+ const size = JSON.stringify(item).length; // Rough size in bytes
470
+ if ((totalSize + size) / 1024 / 1024 < options.maxSize) {
471
+ totalSize += size;
472
+ keepIds.push(item._id);
473
+ } else {
474
+ removeIds.push(item._id);
475
+ }
476
+ }
378
477
 
379
- await LogService.connection
380
- .getRepository(LogService.Log)
381
- .createQueryBuilder()
382
- .delete()
383
- .from(LogService.Log)
384
- .where('_id NOT IN (:...ids)', { ids: latestIds })
385
- .execute();
478
+ if (removeIds.length > 0) {
479
+ const ids = await this.memoryDbService.prune(table, (item) =>
480
+ removeIds.includes(item._id)
481
+ );
482
+ deletedIds.push(...ids);
483
+ }
484
+ }
485
+ }
486
+
487
+ if (deletedIds.length > 0) {
488
+ this.wsService.sendMessage({
489
+ action: 'delete',
490
+ data: { ids: deletedIds },
491
+ });
386
492
  }
387
493
  }
388
494
  }
@@ -243,5 +243,20 @@ export class MemoryDbService {
243
243
  return true;
244
244
  }
245
245
 
246
+ public async prune(
247
+ entity: EntitySchema,
248
+ filter: (item: any) => boolean
249
+ ): Promise<any[]> {
250
+ const table = this.getTableName(entity);
251
+ const deleted = this.db[table].filter(filter).map((item) => item._id);
252
+ this.db[table] = this.db[table].filter((item) => !filter(item));
253
+ return Promise.resolve(deleted);
254
+ }
255
+
256
+ public getTable(entity: EntitySchema): any[] {
257
+ const table = this.getTableName(entity);
258
+ return this.db[table];
259
+ }
260
+
246
261
  private getTableName = (entity: EntitySchema) => entity.options.name;
247
262
  }