@digital-alchemy/core 0.2.2 → 0.3.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.
Files changed (46) hide show
  1. package/README.md +2 -0
  2. package/dist/extensions/cache.extension.d.ts +1 -18
  3. package/dist/extensions/cache.extension.js +10 -15
  4. package/dist/extensions/cache.extension.js.map +1 -1
  5. package/dist/extensions/configuration.extension.d.ts +24 -13
  6. package/dist/extensions/configuration.extension.js +34 -12
  7. package/dist/extensions/configuration.extension.js.map +1 -1
  8. package/dist/extensions/fetch.extension.js +5 -9
  9. package/dist/extensions/fetch.extension.js.map +1 -1
  10. package/dist/extensions/internal.extension.d.ts +27 -23
  11. package/dist/extensions/internal.extension.js +10 -19
  12. package/dist/extensions/internal.extension.js.map +1 -1
  13. package/dist/extensions/is.extension.js +1 -1
  14. package/dist/extensions/is.extension.js.map +1 -1
  15. package/dist/extensions/logger.extension.js +5 -3
  16. package/dist/extensions/logger.extension.js.map +1 -1
  17. package/dist/extensions/scheduler.extension.js +11 -6
  18. package/dist/extensions/scheduler.extension.js.map +1 -1
  19. package/dist/extensions/wiring.extension.d.ts +1 -1
  20. package/dist/extensions/wiring.extension.js +64 -41
  21. package/dist/extensions/wiring.extension.js.map +1 -1
  22. package/dist/helpers/cache-memory.helper.d.ts +2 -3
  23. package/dist/helpers/cache-memory.helper.js +11 -6
  24. package/dist/helpers/cache-memory.helper.js.map +1 -1
  25. package/dist/helpers/cache-redis.helper.d.ts +2 -3
  26. package/dist/helpers/cache-redis.helper.js +12 -6
  27. package/dist/helpers/cache-redis.helper.js.map +1 -1
  28. package/dist/helpers/cache.helper.d.ts +19 -0
  29. package/dist/helpers/cache.helper.js +9 -0
  30. package/dist/helpers/cache.helper.js.map +1 -0
  31. package/dist/helpers/config-environment-loader.helper.js +10 -2
  32. package/dist/helpers/config-environment-loader.helper.js.map +1 -1
  33. package/dist/helpers/config-file-loader.helper.js +4 -4
  34. package/dist/helpers/config-file-loader.helper.js.map +1 -1
  35. package/dist/helpers/config.helper.d.ts +1 -2
  36. package/dist/helpers/config.helper.js.map +1 -1
  37. package/dist/helpers/index.d.ts +1 -0
  38. package/dist/helpers/index.js +1 -0
  39. package/dist/helpers/index.js.map +1 -1
  40. package/dist/helpers/lifecycle.helper.d.ts +5 -1
  41. package/dist/helpers/lifecycle.helper.js +1 -0
  42. package/dist/helpers/lifecycle.helper.js.map +1 -1
  43. package/package.json +3 -2
  44. package/dist/helpers/index copy.d.ts +0 -5
  45. package/dist/helpers/index copy.js +0 -9
  46. package/dist/helpers/index copy.js.map +0 -1
@@ -5,10 +5,15 @@ const tslib_1 = require("tslib");
5
5
  /* eslint-disable sonarjs/cognitive-complexity */
6
6
  const dayjs_1 = tslib_1.__importDefault(require("dayjs"));
7
7
  const node_cron_1 = require("node-cron");
8
+ const __1 = require("..");
8
9
  const helpers_1 = require("../helpers");
9
10
  function Scheduler({ logger, lifecycle, internal }) {
10
11
  const stop = new Set();
11
12
  lifecycle.onShutdownStart(() => {
13
+ if (__1.is.empty(stop)) {
14
+ return;
15
+ }
16
+ logger.info({ name: "onShutdownStart" }, `removing [%s] schedules`, stop.size);
12
17
  stop.forEach((stopFunctions) => {
13
18
  stopFunctions();
14
19
  stop.delete(stopFunctions);
@@ -19,7 +24,7 @@ function Scheduler({ logger, lifecycle, internal }) {
19
24
  function cron({ exec, schedule: scheduleList, label, }) {
20
25
  const stopFunctions = [];
21
26
  [scheduleList].flat().forEach((cronSchedule) => {
22
- logger.trace({ context, label, schedule: cronSchedule }, `start schedule`);
27
+ logger.trace({ context, label, name: cron, schedule: cronSchedule }, `init`);
23
28
  const cronJob = (0, node_cron_1.schedule)(cronSchedule, async () => await internal.safeExec({
24
29
  duration: helpers_1.SCHEDULE_EXECUTION_TIME,
25
30
  errors: helpers_1.SCHEDULE_ERRORS,
@@ -28,11 +33,11 @@ function Scheduler({ logger, lifecycle, internal }) {
28
33
  labels: { context, label },
29
34
  }));
30
35
  lifecycle.onReady(() => {
31
- logger.trace({ context, schedule: cronSchedule }, "start cron");
36
+ logger.trace({ context, name: cron, schedule: cronSchedule }, "starting");
32
37
  cronJob.start();
33
38
  });
34
39
  const stopFunction = () => {
35
- logger.trace({ context, label, schedule: cronSchedule }, `stop schedule`);
40
+ logger.trace({ context, label, name: cron, schedule: cronSchedule }, `stopping`);
36
41
  cronJob.stop();
37
42
  };
38
43
  stop.add(stopFunction);
@@ -45,7 +50,7 @@ function Scheduler({ logger, lifecycle, internal }) {
45
50
  function interval({ exec, interval, label, }) {
46
51
  let runningInterval;
47
52
  lifecycle.onReady(() => {
48
- logger.trace({ context }, "start interval");
53
+ logger.trace({ context, name: "interval" }, "starting");
49
54
  runningInterval = setInterval(async () => await internal.safeExec({
50
55
  duration: helpers_1.SCHEDULE_EXECUTION_TIME,
51
56
  errors: helpers_1.SCHEDULE_ERRORS,
@@ -66,7 +71,7 @@ function Scheduler({ logger, lifecycle, internal }) {
66
71
  const scheduleStop = cron({
67
72
  exec: () => {
68
73
  if (timeout) {
69
- logger.warn({ context }, `sliding schedule retrieving next execution time before previous ran`);
74
+ logger.warn({ context, name: sliding }, `sliding schedule retrieving next execution time before previous ran`);
70
75
  clearTimeout(timeout);
71
76
  }
72
77
  let nextTime = next();
@@ -77,7 +82,7 @@ function Scheduler({ logger, lifecycle, internal }) {
77
82
  }
78
83
  nextTime = (0, dayjs_1.default)(nextTime);
79
84
  if ((0, dayjs_1.default)().isAfter(nextTime)) {
80
- logger.warn({ nextTime: nextTime.toISOString() }, `cannot schedule sliding schedules for the past`);
85
+ logger.warn({ name: sliding, nextTime: nextTime.toISOString() }, `cannot schedule sliding schedules for the past`);
81
86
  // or anything else really
82
87
  // life sucks that way
83
88
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"scheduler.extension.js","sourceRoot":"","sources":["../../src/extensions/scheduler.extension.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scheduler.extension.js","sourceRoot":"","sources":["../../src/extensions/scheduler.extension.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@ import { Scheduler } from "./scheduler.extension";
7
7
  /**
8
8
  * Optimized reverse lookups: Declaration Function => [project, service]
9
9
  */
10
- export declare const REVERSE_MODULE_MAPPING: Map<ServiceFunction, [project: string, service: string]>;
10
+ export declare let REVERSE_MODULE_MAPPING: Map<ServiceFunction, [project: string, service: string]>;
11
11
  export declare let LIB_BOILERPLATE: ReturnType<typeof CreateBoilerplate>;
12
12
  declare function CreateBoilerplate(): LibraryDefinition<{
13
13
  cache: typeof Cache;
@@ -21,16 +21,16 @@ let completedLifecycleCallbacks = new Set();
21
21
  /**
22
22
  * association of projects to { service : Declaration Function }
23
23
  */
24
- const MODULE_MAPPINGS = new Map();
24
+ let MODULE_MAPPINGS = new Map();
25
25
  /**
26
26
  * association of projects to { service : Initialized Service }
27
27
  */
28
- const LOADED_MODULES = new Map();
28
+ let LOADED_MODULES = new Map();
29
29
  /**
30
30
  * Optimized reverse lookups: Declaration Function => [project, service]
31
31
  */
32
32
  exports.REVERSE_MODULE_MAPPING = new Map();
33
- const LOADED_LIFECYCLES = new Map();
33
+ let LOADED_LIFECYCLES = new Map();
34
34
  /**
35
35
  * Details relating to the application that is actively running
36
36
  */
@@ -38,10 +38,10 @@ let ACTIVE_APPLICATION = undefined;
38
38
  // heisenberg's variables. it's probably here, but maybe not
39
39
  let scheduler;
40
40
  let logger;
41
+ let internal;
41
42
  const COERCE_CONTEXT = (context) => context;
42
43
  const WIRING_CONTEXT = COERCE_CONTEXT("boilerplate:wiring");
43
44
  const NONE = -1;
44
- let internal;
45
45
  // exporting a let makes me feel dirty inside
46
46
  // at least it's only for testing
47
47
  // # Utility
@@ -51,7 +51,7 @@ const processEvents = new Map([
51
51
  [
52
52
  "SIGTERM",
53
53
  async () => {
54
- logger.warn(`received [SIGTERM]`);
54
+ logger.warn({ name: "processEvents" }, `received [SIGTERM]`);
55
55
  await Teardown();
56
56
  (0, process_1.exit)();
57
57
  },
@@ -59,7 +59,7 @@ const processEvents = new Map([
59
59
  [
60
60
  "SIGINT",
61
61
  async () => {
62
- logger.warn(`received [SIGINT]`);
62
+ logger.warn({ name: "processEvents" }, `received [SIGINT]`);
63
63
  await Teardown();
64
64
  (0, process_1.exit)();
65
65
  },
@@ -160,7 +160,7 @@ function CreateLibrary({ name: libraryName, configuration, priorityInit, service
160
160
  LOADED_LIFECYCLES.set(libraryName, lifecycle);
161
161
  // not defined for boilerplate (chicken & egg)
162
162
  // manually added inside the bootstrap process
163
- const config = internal?.config;
163
+ const config = internal?.boilerplate.config;
164
164
  config?.[configuration_extension_1.LOAD_PROJECT](libraryName, configuration);
165
165
  await (0, helpers_1.eachSeries)(WireOrder(priorityInit, Object.keys(services)), async (service) => {
166
166
  serviceApis[service] = await WireService(libraryName, service, services[service], lifecycle, internal);
@@ -209,7 +209,7 @@ function CreateApplication({ name, services, libraries = [], configuration = {},
209
209
  services,
210
210
  teardown: async () => {
211
211
  if (!application.booted) {
212
- logger.error(`application is not booted, cannot teardown`);
212
+ logger.error({ name: CreateApplication }, `application is not booted, cannot teardown`);
213
213
  return;
214
214
  }
215
215
  await Teardown();
@@ -244,10 +244,10 @@ async function WireService(project, service, definition, lifecycle, internal) {
244
244
  ]));
245
245
  const params = {
246
246
  ...inject,
247
- cache: internal.cache,
247
+ cache: internal.boilerplate.cache,
248
248
  config,
249
249
  context,
250
- event: internal.event,
250
+ event: internal.utils.event,
251
251
  internal: internal,
252
252
  lifecycle,
253
253
  logger,
@@ -306,7 +306,7 @@ function BuildSortOrder(app) {
306
306
  // you get a warning, and the one the app asks for
307
307
  // hopefully there is no breaking changes
308
308
  if (loaded !== item) {
309
- logger.warn({ name: library.name }, "depends different version [%s]", item.name);
309
+ logger.warn({ name: BuildSortOrder }, "[%s] depends different version {%s}", library.name, item.name);
310
310
  }
311
311
  });
312
312
  }
@@ -322,7 +322,7 @@ function BuildSortOrder(app) {
322
322
  return library.depends?.every((depend) => out.some((i) => i.name === depend.name));
323
323
  });
324
324
  if (!next) {
325
- logger.fatal({ current: out.map((i) => i.name) });
325
+ logger.fatal({ current: out.map((i) => i.name), name: BuildSortOrder });
326
326
  throw new helpers_1.BootstrapException(WIRING_CONTEXT, "BAD_SORT", `Cannot find a next lib to load`);
327
327
  }
328
328
  starting = starting.filter((i) => next.name !== i.name);
@@ -338,7 +338,7 @@ async function Bootstrap(application, options) {
338
338
  throw new helpers_1.BootstrapException(COERCE_CONTEXT("wiring.extension"), "NO_DUAL_BOOT", "Another application is already active, please terminate");
339
339
  }
340
340
  internal = new _1.InternalDefinition();
341
- internal.bootOptions = options;
341
+ internal.boot = { application, options };
342
342
  process.title = application.name;
343
343
  startup = new Date();
344
344
  try {
@@ -346,70 +346,71 @@ async function Bootstrap(application, options) {
346
346
  const CONSTRUCT = {};
347
347
  STATS.Construct = CONSTRUCT;
348
348
  // * Recreate base eventemitter
349
- internal.event = new events_1.EventEmitter();
349
+ internal.utils.event = new events_1.EventEmitter();
350
350
  // ? Some libraries need to be aware of
351
- internal.application = application;
352
351
  // * Generate a new boilerplate module
353
352
  exports.LIB_BOILERPLATE = CreateBoilerplate();
354
353
  // * Wire it
355
354
  let start = Date.now();
356
355
  await exports.LIB_BOILERPLATE[helpers_1.WIRE_PROJECT](internal);
357
356
  const api = LOADED_MODULES.get("boilerplate");
358
- internal.cache = api.cache;
359
- internal.logger = api.logger;
360
- internal.createFetcher = api.fetch;
361
- internal.config = api.configuration;
357
+ internal.boilerplate.cache = api.cache;
358
+ internal.boilerplate.logger = api.logger;
359
+ internal.boilerplate.fetch = api.fetch;
360
+ internal.boilerplate.config = api.configuration;
362
361
  CONSTRUCT.boilerplate = `${Date.now() - start}ms`;
363
362
  // ~ configuration
364
363
  BOILERPLATE()?.configuration?.[configuration_extension_1.LOAD_PROJECT](exports.LIB_BOILERPLATE.name, exports.LIB_BOILERPLATE.configuration);
365
364
  // ~ scheduler (for injecting into other modules)
366
365
  scheduler = LOADED_MODULES.get(exports.LIB_BOILERPLATE.name).scheduler;
367
- logger = internal.logger.context(WIRING_CONTEXT);
368
- logger.info(`[boilerplate] wiring complete`);
366
+ logger = internal.boilerplate.logger.context(WIRING_CONTEXT);
367
+ logger.info({ name: Bootstrap }, `[boilerplate] wiring complete`);
369
368
  // * Wire in various shutdown events
370
369
  processEvents.forEach((callback, event) => {
371
370
  process.on(event, callback);
372
- logger.trace({ event }, "shutdown event");
371
+ logger.trace({ event, name: Bootstrap }, "shutdown event");
373
372
  });
374
373
  // * Add in libraries
375
374
  application.libraries ??= [];
376
375
  const order = BuildSortOrder(application);
377
376
  await (0, helpers_1.eachSeries)(order, async (i) => {
378
377
  start = Date.now();
379
- logger.info(`[%s] init project`, i.name);
378
+ logger.info({ name: Bootstrap }, `[%s] init project`, i.name);
380
379
  await i[helpers_1.WIRE_PROJECT](internal);
381
380
  CONSTRUCT[i.name] = `${Date.now() - start}ms`;
382
381
  });
383
- logger.info(`init application`);
382
+ logger.info({ name: Bootstrap }, `init application`);
384
383
  // * Finally the application
385
384
  start = Date.now();
386
385
  await application[helpers_1.WIRE_PROJECT](internal);
387
386
  CONSTRUCT[application.name] = `${Date.now() - start}ms`;
388
387
  // ? Configuration values provided bootstrap take priority over module level
389
388
  if (!_1.is.empty(options?.configuration)) {
390
- internal.config.merge(options?.configuration);
389
+ internal.boilerplate.config.merge(options?.configuration);
391
390
  }
392
391
  // - Kick off lifecycle
393
- logger.debug(`[PreInit] running lifecycle callbacks`);
392
+ logger.debug({ name: Bootstrap }, `[PreInit] running lifecycle callbacks`);
394
393
  STATS.PreInit = await RunStageCallbacks("PreInit");
395
394
  // - Pull in user configurations
396
- logger.debug("loading configuration");
395
+ logger.debug({ name: Bootstrap }, "loading configuration");
397
396
  STATS.Configure =
398
397
  await BOILERPLATE()?.configuration?.[configuration_extension_1.INITIALIZE](application);
399
398
  // - Run through other events in order
400
- logger.debug(`[PostConfig] running lifecycle callbacks`);
399
+ logger.debug({ name: Bootstrap }, `[PostConfig] running lifecycle callbacks`);
401
400
  STATS.PostConfig = await RunStageCallbacks("PostConfig");
402
- logger.debug(`[Bootstrap] running lifecycle callbacks`);
401
+ logger.debug({ name: Bootstrap }, `[Bootstrap] running lifecycle callbacks`);
403
402
  STATS.Bootstrap = await RunStageCallbacks("Bootstrap");
404
- logger.debug(`[Ready] running lifecycle callbacks`);
403
+ logger.debug({ name: Bootstrap }, `[Ready] running lifecycle callbacks`);
405
404
  STATS.Ready = await RunStageCallbacks("Ready");
406
405
  STATS.Total = `${Date.now() - startup.getTime()}ms`;
407
406
  // * App is ready!
408
- logger.info(options?.showExtraBootStats ? STATS : { Total: STATS.Total }, `🪄 [%s] application bootstrapped`, application.name);
407
+ logger.info(options?.showExtraBootStats
408
+ ? { ...STATS, name: Bootstrap }
409
+ : { Total: STATS.Total, name: Bootstrap }, `🪄 [%s] application bootstrapped`, application.name);
409
410
  ACTIVE_APPLICATION = application;
410
411
  }
411
412
  catch (error) {
412
- logger?.fatal({ error }, "bootstrap failed");
413
+ logger?.fatal({ error, name: Bootstrap }, "bootstrap failed");
413
414
  (0, process_1.exit)();
414
415
  }
415
416
  }
@@ -418,21 +419,42 @@ async function Teardown() {
418
419
  if (!ACTIVE_APPLICATION) {
419
420
  return;
420
421
  }
421
- logger.info(`tearing down application`);
422
- logger.debug(`[ShutdownStart] running lifecycle callbacks`);
423
- await RunStageCallbacks("ShutdownStart");
424
- logger.debug(`[ShutdownComplete] running lifecycle callbacks`);
425
- await RunStageCallbacks("ShutdownComplete");
422
+ // * Announce
423
+ logger.warn({ name: Teardown }, `received teardown request`);
424
+ try {
425
+ // * PreShutdown
426
+ logger.debug({ name: Teardown }, `[PreShutdown] running lifecycle callbacks`);
427
+ await RunStageCallbacks("PreShutdown");
428
+ // * Formally shutting down
429
+ logger.info({ name: Teardown }, `tearing down application`);
430
+ logger.debug({ name: Teardown }, `[ShutdownStart] running lifecycle callbacks`);
431
+ await RunStageCallbacks("ShutdownStart");
432
+ logger.debug({ name: Teardown }, `[ShutdownComplete] running lifecycle callbacks`);
433
+ await RunStageCallbacks("ShutdownComplete");
434
+ }
435
+ catch (error) {
436
+ // ! oof
437
+ logger.error({ error, name: Teardown }, "error occurred during teardown, some lifecycle events may be incomplete");
438
+ }
439
+ // * Final resource cleanup, attempt to reset everything possible
440
+ processEvents.forEach((callback, event) => process.removeListener(event, callback));
441
+ internal = undefined;
442
+ internal.utils.event.removeAllListeners();
443
+ logger = undefined;
426
444
  ACTIVE_APPLICATION = undefined;
427
445
  completedLifecycleCallbacks = new Set();
428
- processEvents.forEach((callback, event) => process.removeListener(event, callback));
429
- logger.info({ started_at: internal.utils.relativeDate(startup) }, `application terminated`);
446
+ scheduler = undefined;
447
+ MODULE_MAPPINGS = new Map();
448
+ LOADED_MODULES = new Map();
449
+ LOADED_LIFECYCLES = new Map();
450
+ exports.REVERSE_MODULE_MAPPING = new Map();
451
+ logger.info({ name: Teardown, started_at: internal.utils.relativeDate(startup) }, `application terminated`);
430
452
  }
431
453
  // # Lifecycle
432
454
  function CreateChildLifecycle(name) {
433
455
  const stages = [...helpers_1.LIFECYCLE_STAGES];
434
456
  const childCallbacks = Object.fromEntries(stages.map((i) => [i, []]));
435
- const [onPreInit, onPostConfig, onBootstrap, onReady, onShutdownStart, onShutdownComplete,] = helpers_1.LIFECYCLE_STAGES.map((stage) => (callback, priority = NONE) => {
457
+ const [onPreInit, onPostConfig, onBootstrap, onReady, onShutdownStart, onShutdownComplete, onPreShutdown,] = helpers_1.LIFECYCLE_STAGES.map((stage) => (callback, priority = NONE) => {
436
458
  if (completedLifecycleCallbacks.has(`on${stage}`)) {
437
459
  // this is makes "earliest run time" logic way easier to implement
438
460
  // intended mode of operation
@@ -442,7 +464,7 @@ function CreateChildLifecycle(name) {
442
464
  }
443
465
  // What does this mean in reality?
444
466
  // Probably a broken unit test, I really don't know what workflow would cause this
445
- logger.fatal(`on${stage} late attach, cannot attach callback`);
467
+ logger.fatal({ name: CreateChildLifecycle }, `on${stage} late attach, cannot attach callback`);
446
468
  return;
447
469
  }
448
470
  childCallbacks[stage].push([callback, priority]);
@@ -452,6 +474,7 @@ function CreateChildLifecycle(name) {
452
474
  onBootstrap,
453
475
  onPostConfig,
454
476
  onPreInit,
477
+ onPreShutdown,
455
478
  onReady,
456
479
  onShutdownComplete,
457
480
  onShutdownStart,
@@ -1 +1 @@
1
- {"version":3,"file":"wiring.extension.js","sourceRoot":"","sources":["../../src/extensions/wiring.extension.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wiring.extension.js","sourceRoot":"","sources":["../../src/extensions/wiring.extension.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,6 @@
1
1
  import NodeCache from "node-cache";
2
- import { ICacheDriver } from "..";
3
- import { TServiceParams } from "./wiring.helper";
2
+ import { CacheDriverOptions, ICacheDriver } from "..";
4
3
  /**
5
4
  * url & name properties automatically generated from config
6
5
  */
7
- export declare function createMemoryDriver({ logger, config }: Pick<TServiceParams, "logger" | "config">, options?: NodeCache.Options): ICacheDriver;
6
+ export declare function createMemoryDriver({ logger, config, lifecycle }: CacheDriverOptions, options?: NodeCache.Options): ICacheDriver;
@@ -2,24 +2,29 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createMemoryDriver = void 0;
4
4
  const tslib_1 = require("tslib");
5
+ /* eslint-disable sonarjs/no-duplicate-string */
5
6
  const node_cache_1 = tslib_1.__importDefault(require("node-cache"));
6
7
  const __1 = require("..");
7
8
  const metrics_helper_1 = require("./metrics.helper");
8
9
  /**
9
10
  * url & name properties automatically generated from config
10
11
  */
11
- function createMemoryDriver({ logger, config }, options) {
12
- const client = new node_cache_1.default({
12
+ function createMemoryDriver({ logger, config, lifecycle }, options) {
13
+ let client = new node_cache_1.default({
13
14
  stdTTL: config.boilerplate.CACHE_TTL,
14
15
  ...options,
15
16
  });
17
+ lifecycle.onShutdownStart(() => {
18
+ logger.info({ name: "onShutdownStart" }, `cleanup`);
19
+ client = undefined;
20
+ });
16
21
  return {
17
22
  async del(key) {
18
23
  try {
19
24
  client.del(key);
20
25
  }
21
26
  catch (error) {
22
- logger.error({ err: error }, "Error in Memory Cache del operation");
27
+ logger.error({ err: error, name: "del" }, "memory cache error");
23
28
  metrics_helper_1.MEMORY_CACHE_ERROR_COUNT.inc();
24
29
  }
25
30
  },
@@ -32,7 +37,7 @@ function createMemoryDriver({ logger, config }, options) {
32
37
  return defaultValue;
33
38
  }
34
39
  catch (error) {
35
- logger.error({ err: error }, "Error in Memory Cache get operation");
40
+ logger.error({ err: error, name: "get" }, "memory cache error");
36
41
  metrics_helper_1.MEMORY_CACHE_ERROR_COUNT.inc();
37
42
  return defaultValue;
38
43
  }
@@ -45,7 +50,7 @@ function createMemoryDriver({ logger, config }, options) {
45
50
  : allKeys;
46
51
  }
47
52
  catch (error) {
48
- logger.error({ err: error }, "Error in Memory Cache keys operation");
53
+ logger.error({ err: error, name: "keys" }, "memory cache error");
49
54
  metrics_helper_1.MEMORY_CACHE_ERROR_COUNT.inc();
50
55
  return [];
51
56
  }
@@ -55,7 +60,7 @@ function createMemoryDriver({ logger, config }, options) {
55
60
  client.set(key, JSON.stringify(value), ttl);
56
61
  }
57
62
  catch (error) {
58
- logger.error({ err: error }, "Error in Memory Cache set operation");
63
+ logger.error({ err: error, name: "set" }, "memory cache error");
59
64
  metrics_helper_1.MEMORY_CACHE_ERROR_COUNT.inc();
60
65
  }
61
66
  },
@@ -1 +1 @@
1
- {"version":3,"file":"cache-memory.helper.js","sourceRoot":"","sources":["../../src/helpers/cache-memory.helper.ts"],"names":[],"mappings":";;;;AAAA,oEAAmC;AAEnC,0BAAwB;AAExB,qDAA4D;AAG5D;;GAEG;AACH,SAAgB,kBAAkB,CAChC,EAAE,MAAM,EAAE,MAAM,EAA6C,EAC7D,OAA2B;IAE3B,MAAM,MAAM,GAAG,IAAI,oBAAS,CAAC;QAC3B,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,SAAS;QACpC,GAAG,OAAO;KACX,CAAC,CAAC;IAEH,OAAO;QACL,KAAK,CAAC,GAAG,CAAC,GAAW;YACnB,IAAI,CAAC;gBACH,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAClB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,qCAAqC,CAAC,CAAC;gBACpE,yCAAwB,CAAC,GAAG,EAAE,CAAC;YACjC,CAAC;QACH,CAAC;QACD,KAAK,CAAC,GAAG,CAAI,GAAW,EAAE,YAAgB;YACxC,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC5B,IAAI,MAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;oBACnB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAM,CAAC;gBAC9B,CAAC;gBACD,OAAO,YAAY,CAAC;YACtB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,qCAAqC,CAAC,CAAC;gBACpE,yCAAwB,CAAC,GAAG,EAAE,CAAC;gBAC/B,OAAO,YAAY,CAAC;YACtB,CAAC;QACH,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,OAAgB;YACzB,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC9B,OAAO,OAAO;oBACZ,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACxD,CAAC,CAAC,OAAO,CAAC;YACd,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,sCAAsC,CAAC,CAAC;gBACrE,yCAAwB,CAAC,GAAG,EAAE,CAAC;gBAC/B,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC;QACD,KAAK,CAAC,GAAG,CAAI,GAAW,EAAE,KAAQ,EAAE,GAAW;YAC7C,IAAI,CAAC;gBACH,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAC9C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,qCAAqC,CAAC,CAAC;gBACpE,yCAAwB,CAAC,GAAG,EAAE,CAAC;YACjC,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AApDD,gDAoDC"}
1
+ {"version":3,"file":"cache-memory.helper.js","sourceRoot":"","sources":["../../src/helpers/cache-memory.helper.ts"],"names":[],"mappings":";;;;AAAA,gDAAgD;AAChD,oEAAmC;AAEnC,0BAA0D;AAC1D,qDAA4D;AAE5D;;GAEG;AACH,SAAgB,kBAAkB,CAChC,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAsB,EACjD,OAA2B;IAE3B,IAAI,MAAM,GAAG,IAAI,oBAAS,CAAC;QACzB,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,SAAS;QACpC,GAAG,OAAO;KACX,CAAC,CAAC;IAEH,SAAS,CAAC,eAAe,CAAC,GAAG,EAAE;QAC7B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,SAAS,CAAC,CAAC;QACpD,MAAM,GAAG,SAAS,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,KAAK,CAAC,GAAG,CAAC,GAAW;YACnB,IAAI,CAAC;gBACH,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAClB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,oBAAoB,CAAC,CAAC;gBAChE,yCAAwB,CAAC,GAAG,EAAE,CAAC;YACjC,CAAC;QACH,CAAC;QACD,KAAK,CAAC,GAAG,CAAI,GAAW,EAAE,YAAgB;YACxC,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC5B,IAAI,MAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;oBACnB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAM,CAAC;gBAC9B,CAAC;gBACD,OAAO,YAAY,CAAC;YACtB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,oBAAoB,CAAC,CAAC;gBAChE,yCAAwB,CAAC,GAAG,EAAE,CAAC;gBAC/B,OAAO,YAAY,CAAC;YACtB,CAAC;QACH,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,OAAgB;YACzB,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC9B,OAAO,OAAO;oBACZ,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACxD,CAAC,CAAC,OAAO,CAAC;YACd,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,oBAAoB,CAAC,CAAC;gBACjE,yCAAwB,CAAC,GAAG,EAAE,CAAC;gBAC/B,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC;QACD,KAAK,CAAC,GAAG,CAAI,GAAW,EAAE,KAAQ,EAAE,GAAW;YAC7C,IAAI,CAAC;gBACH,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAC9C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,oBAAoB,CAAC,CAAC;gBAChE,yCAAwB,CAAC,GAAG,EAAE,CAAC;YACjC,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAzDD,gDAyDC"}
@@ -1,7 +1,6 @@
1
1
  import { createClient } from "redis";
2
- import { ICacheDriver } from "..";
3
- import { TServiceParams } from "./wiring.helper";
2
+ import { CacheDriverOptions, ICacheDriver } from "..";
4
3
  /**
5
4
  * url & name properties automatically generated from config
6
5
  */
7
- export declare function createRedisDriver({ logger, config }: Pick<TServiceParams, "logger" | "config">, options?: Parameters<typeof createClient>[0]): Promise<ICacheDriver>;
6
+ export declare function createRedisDriver({ logger, config, lifecycle }: CacheDriverOptions, options?: Parameters<typeof createClient>[0]): Promise<ICacheDriver>;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createRedisDriver = void 0;
4
+ /* eslint-disable sonarjs/no-duplicate-string */
4
5
  /* eslint-disable @typescript-eslint/no-magic-numbers */
5
6
  const redis_1 = require("redis");
6
7
  const __1 = require("..");
@@ -8,19 +9,24 @@ const metrics_helper_1 = require("./metrics.helper");
8
9
  /**
9
10
  * url & name properties automatically generated from config
10
11
  */
11
- async function createRedisDriver({ logger, config }, options) {
12
- const client = (0, redis_1.createClient)({
12
+ async function createRedisDriver({ logger, config, lifecycle }, options) {
13
+ let client = (0, redis_1.createClient)({
13
14
  url: config.boilerplate.REDIS_URL,
14
15
  ...options,
15
16
  });
16
17
  await client.connect();
18
+ lifecycle.onShutdownStart(async () => {
19
+ logger.info({ name: "onShutdownStart" }, `disconnecting`);
20
+ await client.disconnect();
21
+ client = undefined;
22
+ });
17
23
  return {
18
24
  async del(key) {
19
25
  try {
20
26
  await client.del(key);
21
27
  }
22
28
  catch (error) {
23
- logger.error({ err: error }, "Error in Redis del operation");
29
+ logger.error({ err: error, name: "del" }, "redis cache error");
24
30
  metrics_helper_1.REDIS_ERROR_COUNT.inc();
25
31
  }
26
32
  },
@@ -37,7 +43,7 @@ async function createRedisDriver({ logger, config }, options) {
37
43
  return defaultValue;
38
44
  }
39
45
  catch (error) {
40
- logger.error({ err: error }, "Error in Redis get operation");
46
+ logger.error({ err: error, name: "get" }, "redis cache error");
41
47
  metrics_helper_1.REDIS_ERROR_COUNT.inc();
42
48
  return defaultValue;
43
49
  }
@@ -47,7 +53,7 @@ async function createRedisDriver({ logger, config }, options) {
47
53
  return await client.keys(pattern || "*");
48
54
  }
49
55
  catch (error) {
50
- logger.error({ err: error }, "Error in Redis keys operation");
56
+ logger.error({ err: error, name: "keys" }, "redis cache error");
51
57
  metrics_helper_1.REDIS_ERROR_COUNT.inc();
52
58
  return [];
53
59
  }
@@ -59,7 +65,7 @@ async function createRedisDriver({ logger, config }, options) {
59
65
  });
60
66
  }
61
67
  catch (error) {
62
- logger.error({ err: error }, "Error in Redis set operation");
68
+ logger.error({ err: error, name: "set" }, "redis cache error");
63
69
  metrics_helper_1.REDIS_ERROR_COUNT.inc();
64
70
  }
65
71
  },
@@ -1 +1 @@
1
- {"version":3,"file":"cache-redis.helper.js","sourceRoot":"","sources":["../../src/helpers/cache-redis.helper.ts"],"names":[],"mappings":";;;AAAA,wDAAwD;AACxD,iCAAqC;AAErC,0BAAgC;AAEhC,qDAG0B;AAE1B;;GAEG;AACI,KAAK,UAAU,iBAAiB,CACrC,EAAE,MAAM,EAAE,MAAM,EAA6C,EAC7D,OAA4C;IAE5C,MAAM,MAAM,GAAG,IAAA,oBAAY,EAAC;QAC1B,GAAG,EAAE,MAAM,CAAC,WAAW,CAAC,SAAS;QACjC,GAAG,OAAO;KACX,CAAC,CAAC;IACH,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;IAEvB,OAAO;QACL,KAAK,CAAC,GAAG,CAAC,GAAW;YACnB,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACxB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,8BAA8B,CAAC,CAAC;gBAC7D,kCAAiB,CAAC,GAAG,EAAE,CAAC;YAC1B,CAAC;QACH,CAAC;QACD,KAAK,CAAC,GAAG,CAAI,GAAW,EAAE,YAAgB;YACxC,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;gBAC/B,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAClC,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACnC,MAAM,sBAAsB,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,UAAM,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;gBAChE,2CAA0B,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;gBAC3D,IAAI,GAAG,KAAK,IAAI,IAAI,MAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;oBACnC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAM,CAAC;gBAC9B,CAAC;gBACD,OAAO,YAAY,CAAC;YACtB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,8BAA8B,CAAC,CAAC;gBAC7D,kCAAiB,CAAC,GAAG,EAAE,CAAC;gBACxB,OAAO,YAAY,CAAC;YACtB,CAAC;QACH,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,OAAgB;YACzB,IAAI,CAAC;gBACH,OAAO,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC;YAC3C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,+BAA+B,CAAC,CAAC;gBAC9D,kCAAiB,CAAC,GAAG,EAAE,CAAC;gBACxB,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC;QACD,KAAK,CAAC,GAAG,CAAI,GAAW,EAAE,KAAQ,EAAE,GAAW;YAC7C,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;oBAC3C,EAAE,EAAE,GAAG;iBACR,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,8BAA8B,CAAC,CAAC;gBAC7D,kCAAiB,CAAC,GAAG,EAAE,CAAC;YAC1B,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAxDD,8CAwDC"}
1
+ {"version":3,"file":"cache-redis.helper.js","sourceRoot":"","sources":["../../src/helpers/cache-redis.helper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { TServiceParams } from ".";
2
+ export type CacheDriverOptions = Pick<TServiceParams, "logger" | "config" | "lifecycle">;
3
+ export interface ICacheDriver {
4
+ get<T>(key: string, defaultValue?: T): Promise<T | undefined>;
5
+ set<T>(key: string, value: T, ttl: number): Promise<void>;
6
+ del(key: string): Promise<void>;
7
+ keys(pattern?: string): Promise<string[]>;
8
+ }
9
+ export type TCache = {
10
+ del: (key: string) => Promise<void>;
11
+ get: <T>(key: string, defaultValue?: T) => Promise<T>;
12
+ set: <T>(key: string, value: T, ttl?: number) => Promise<void>;
13
+ keys: (pattern?: string) => Promise<string[]>;
14
+ setClient: (client: ICacheDriver) => void;
15
+ };
16
+ export declare enum CacheProviders {
17
+ redis = "redis",
18
+ memory = "memory"
19
+ }