@digital-alchemy/core 24.8.3 → 24.9.3

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 (117) hide show
  1. package/README.md +4 -1
  2. package/dist/helpers/async.helper.d.ts +1 -1
  3. package/dist/helpers/async.helper.js +13 -14
  4. package/dist/helpers/async.helper.js.map +1 -1
  5. package/dist/helpers/config-environment-loader.helper.js +16 -20
  6. package/dist/helpers/config-environment-loader.helper.js.map +1 -1
  7. package/dist/helpers/config-file-loader.helper.js +39 -46
  8. package/dist/helpers/config-file-loader.helper.js.map +1 -1
  9. package/dist/helpers/config.helper.d.ts +23 -2
  10. package/dist/helpers/config.helper.js +28 -38
  11. package/dist/helpers/config.helper.js.map +1 -1
  12. package/dist/helpers/context.helper.js +1 -2
  13. package/dist/helpers/cron.helper.d.ts +27 -0
  14. package/dist/helpers/cron.helper.js +4 -7
  15. package/dist/helpers/cron.helper.js.map +1 -1
  16. package/dist/helpers/errors.helper.d.ts +0 -12
  17. package/dist/helpers/errors.helper.js +2 -23
  18. package/dist/helpers/errors.helper.js.map +1 -1
  19. package/dist/helpers/events.helper.js +4 -10
  20. package/dist/helpers/events.helper.js.map +1 -1
  21. package/dist/helpers/extend.helper.js +12 -17
  22. package/dist/helpers/extend.helper.js.map +1 -1
  23. package/dist/helpers/index.d.ts +2 -4
  24. package/dist/helpers/index.js +14 -19
  25. package/dist/helpers/index.js.map +1 -1
  26. package/dist/helpers/lifecycle.helper.d.ts +1 -5
  27. package/dist/helpers/lifecycle.helper.js +1 -4
  28. package/dist/helpers/lifecycle.helper.js.map +1 -1
  29. package/dist/{extensions/logger.extension.d.ts → helpers/logger.helper.d.ts} +33 -40
  30. package/dist/helpers/logger.helper.js +10 -0
  31. package/dist/helpers/logger.helper.js.map +1 -0
  32. package/dist/helpers/module.helper.d.ts +74 -0
  33. package/dist/helpers/module.helper.js +131 -0
  34. package/dist/helpers/module.helper.js.map +1 -0
  35. package/dist/helpers/utilities.helper.d.ts +1 -0
  36. package/dist/helpers/utilities.helper.js +57 -58
  37. package/dist/helpers/utilities.helper.js.map +1 -1
  38. package/dist/helpers/wiring.helper.d.ts +77 -23
  39. package/dist/helpers/wiring.helper.js +45 -47
  40. package/dist/helpers/wiring.helper.js.map +1 -1
  41. package/dist/index.d.ts +2 -1
  42. package/dist/index.js +3 -5
  43. package/dist/index.js.map +1 -1
  44. package/dist/services/als.extension.d.ts +2 -0
  45. package/dist/services/als.extension.js +17 -0
  46. package/dist/services/als.extension.js.map +1 -0
  47. package/dist/services/configuration.extension.d.ts +7 -0
  48. package/dist/services/configuration.extension.js +117 -0
  49. package/dist/services/configuration.extension.js.map +1 -0
  50. package/dist/{extensions → services}/index.d.ts +1 -3
  51. package/dist/services/index.js +8 -0
  52. package/dist/services/index.js.map +1 -0
  53. package/dist/{extensions → services}/internal.extension.d.ts +7 -23
  54. package/dist/{extensions → services}/internal.extension.js +43 -55
  55. package/dist/services/internal.extension.js.map +1 -0
  56. package/dist/{extensions → services}/is.extension.d.ts +5 -0
  57. package/dist/{extensions → services}/is.extension.js +20 -15
  58. package/dist/services/is.extension.js.map +1 -0
  59. package/dist/{extensions → services}/lifecycle.extension.js +17 -19
  60. package/dist/services/lifecycle.extension.js.map +1 -0
  61. package/dist/services/logger.extension.d.ts +2 -0
  62. package/dist/services/logger.extension.js +200 -0
  63. package/dist/services/logger.extension.js.map +1 -0
  64. package/dist/services/scheduler.extension.d.ts +2 -0
  65. package/dist/services/scheduler.extension.js +108 -0
  66. package/dist/services/scheduler.extension.js.map +1 -0
  67. package/dist/services/wiring.extension.d.ts +111 -0
  68. package/dist/services/wiring.extension.js +437 -0
  69. package/dist/services/wiring.extension.js.map +1 -0
  70. package/dist/testing/index.d.ts +2 -0
  71. package/dist/testing/index.js +3 -0
  72. package/dist/testing/index.js.map +1 -0
  73. package/dist/testing/mock-logger.d.ts +2 -0
  74. package/dist/testing/mock-logger.js +11 -0
  75. package/dist/testing/mock-logger.js.map +1 -0
  76. package/dist/testing/test-module.d.ts +112 -0
  77. package/dist/testing/test-module.js +138 -0
  78. package/dist/testing/test-module.js.map +1 -0
  79. package/package.json +57 -43
  80. package/dist/extensions/cache.extension.d.ts +0 -2
  81. package/dist/extensions/cache.extension.js +0 -90
  82. package/dist/extensions/cache.extension.js.map +0 -1
  83. package/dist/extensions/configuration.extension.d.ts +0 -52
  84. package/dist/extensions/configuration.extension.js +0 -131
  85. package/dist/extensions/configuration.extension.js.map +0 -1
  86. package/dist/extensions/fetch.extension.d.ts +0 -17
  87. package/dist/extensions/fetch.extension.js +0 -133
  88. package/dist/extensions/fetch.extension.js.map +0 -1
  89. package/dist/extensions/index.js +0 -13
  90. package/dist/extensions/index.js.map +0 -1
  91. package/dist/extensions/internal.extension.js.map +0 -1
  92. package/dist/extensions/is.extension.js.map +0 -1
  93. package/dist/extensions/lifecycle.extension.js.map +0 -1
  94. package/dist/extensions/logger.extension.js +0 -186
  95. package/dist/extensions/logger.extension.js.map +0 -1
  96. package/dist/extensions/metrics.extension.d.ts +0 -18
  97. package/dist/extensions/metrics.extension.js +0 -156
  98. package/dist/extensions/metrics.extension.js.map +0 -1
  99. package/dist/extensions/scheduler.extension.d.ts +0 -21
  100. package/dist/extensions/scheduler.extension.js +0 -133
  101. package/dist/extensions/scheduler.extension.js.map +0 -1
  102. package/dist/extensions/wiring.extension.d.ts +0 -50
  103. package/dist/extensions/wiring.extension.js +0 -374
  104. package/dist/extensions/wiring.extension.js.map +0 -1
  105. package/dist/helpers/cache-memory.helper.d.ts +0 -6
  106. package/dist/helpers/cache-memory.helper.js +0 -68
  107. package/dist/helpers/cache-memory.helper.js.map +0 -1
  108. package/dist/helpers/cache-redis.helper.d.ts +0 -6
  109. package/dist/helpers/cache-redis.helper.js +0 -73
  110. package/dist/helpers/cache-redis.helper.js.map +0 -1
  111. package/dist/helpers/cache.helper.d.ts +0 -19
  112. package/dist/helpers/cache.helper.js +0 -9
  113. package/dist/helpers/cache.helper.js.map +0 -1
  114. package/dist/helpers/fetch.helper.d.ts +0 -165
  115. package/dist/helpers/fetch.helper.js +0 -173
  116. package/dist/helpers/fetch.helper.js.map +0 -1
  117. /package/dist/{extensions → services}/lifecycle.extension.d.ts +0 -0
@@ -1,133 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Scheduler = Scheduler;
4
- const tslib_1 = require("tslib");
5
- /* eslint-disable sonarjs/cognitive-complexity */
6
- const dayjs_1 = tslib_1.__importDefault(require("dayjs"));
7
- const node_cron_1 = require("node-cron");
8
- const __1 = require("..");
9
- const helpers_1 = require("../helpers");
10
- function Scheduler({ logger, lifecycle, internal }) {
11
- const stop = new Set();
12
- // #MARK: lifecycle events
13
- lifecycle.onPreShutdown(() => {
14
- if (__1.is.empty(stop)) {
15
- return;
16
- }
17
- logger.info({ name: "onPreShutdown" }, `removing [%s] schedules`, stop.size);
18
- stop.forEach((stopFunctions) => {
19
- stopFunctions();
20
- stop.delete(stopFunctions);
21
- });
22
- });
23
- return (context) => {
24
- // #MARK: node-cron
25
- function cron({ exec, schedule: scheduleList, label, }) {
26
- const stopFunctions = [];
27
- [scheduleList].flat().forEach((cronSchedule) => {
28
- logger.trace({ context, label, name: cron, schedule: cronSchedule }, `init`);
29
- const cronJob = (0, node_cron_1.schedule)(cronSchedule, async () => await internal.safeExec({
30
- duration: internal.boilerplate.metrics.SCHEDULE_EXECUTION_TIME,
31
- errors: internal.boilerplate.metrics.SCHEDULE_ERRORS,
32
- exec,
33
- executions: internal.boilerplate.metrics.SCHEDULE_EXECUTION_COUNT,
34
- labels: { context, label },
35
- }));
36
- lifecycle.onReady(() => {
37
- logger.trace({ context, name: cron, schedule: cronSchedule }, "starting");
38
- cronJob.start();
39
- });
40
- const stopFunction = () => {
41
- logger.trace({ context, label, name: cron, schedule: cronSchedule }, `stopping`);
42
- cronJob.stop();
43
- };
44
- stop.add(stopFunction);
45
- stopFunctions.push(stopFunction);
46
- return stopFunction;
47
- });
48
- return () => stopFunctions.forEach((stop) => stop());
49
- }
50
- // #MARK: setInterval
51
- function interval({ exec, interval, label, }) {
52
- let runningInterval;
53
- lifecycle.onReady(() => {
54
- logger.trace({ context, name: "interval" }, "starting");
55
- runningInterval = setInterval(async () => await internal.safeExec({
56
- duration: internal.boilerplate.metrics.SCHEDULE_EXECUTION_TIME,
57
- errors: internal.boilerplate.metrics.SCHEDULE_ERRORS,
58
- exec,
59
- executions: internal.boilerplate.metrics.SCHEDULE_EXECUTION_COUNT,
60
- labels: { context, label },
61
- }), interval);
62
- });
63
- const stopFunction = () => {
64
- if (runningInterval) {
65
- clearInterval(runningInterval);
66
- }
67
- };
68
- stop.add(stopFunction);
69
- return stopFunction;
70
- }
71
- // #MARK: sliding
72
- function sliding({ exec, reset, next, label, }) {
73
- if (!__1.is.function(next)) {
74
- throw new helpers_1.BootstrapException(context, "BAD_NEXT", "Did not provide next function to schedule.sliding");
75
- }
76
- if (!__1.is.function(exec)) {
77
- throw new helpers_1.BootstrapException(context, "BAD_NEXT", "Did not provide exec function to schedule.sliding");
78
- }
79
- let timeout;
80
- const waitForNext = () => {
81
- if (timeout) {
82
- logger.warn({ context, name: sliding }, `sliding schedule retrieving next execution time before previous ran`);
83
- clearTimeout(timeout);
84
- }
85
- let nextTime = next();
86
- if (!nextTime) {
87
- // nothing to do?
88
- // will try again next schedule
89
- return;
90
- }
91
- nextTime = (0, dayjs_1.default)(nextTime);
92
- if ((0, dayjs_1.default)().isAfter(nextTime)) {
93
- // probably a result of boot
94
- // ignore
95
- return;
96
- }
97
- if (nextTime) {
98
- timeout = setTimeout(async () => {
99
- await internal.safeExec({
100
- duration: internal.boilerplate.metrics.SCHEDULE_EXECUTION_TIME,
101
- errors: internal.boilerplate.metrics.SCHEDULE_ERRORS,
102
- exec,
103
- executions: internal.boilerplate.metrics.SCHEDULE_EXECUTION_COUNT,
104
- labels: { context, label },
105
- });
106
- }, Math.abs((0, dayjs_1.default)().diff(nextTime, "ms")));
107
- }
108
- };
109
- // reset on schedule
110
- const scheduleStop = cron({
111
- exec: waitForNext,
112
- label,
113
- schedule: reset,
114
- });
115
- // find value for now (boot)
116
- lifecycle.onReady(() => waitForNext());
117
- return () => {
118
- scheduleStop();
119
- if (timeout) {
120
- clearTimeout(timeout);
121
- timeout = undefined;
122
- }
123
- };
124
- }
125
- // #MARK: return object
126
- return {
127
- cron,
128
- interval,
129
- sliding,
130
- };
131
- };
132
- }
133
- //# sourceMappingURL=scheduler.extension.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scheduler.extension.js","sourceRoot":"","sources":["../../src/extensions/scheduler.extension.ts"],"names":[],"mappings":"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"}
@@ -1,50 +0,0 @@
1
- import { ApplicationConfigurationOptions, ApplicationDefinition, OptionalModuleConfiguration, ServiceMap } from "../helpers";
2
- import { Metrics } from ".";
3
- import { Cache } from "./cache.extension";
4
- import { Configuration } from "./configuration.extension";
5
- import { Fetch } from "./fetch.extension";
6
- import { Logger } from "./logger.extension";
7
- import { Scheduler } from "./scheduler.extension";
8
- declare function CreateBoilerplate(): import("../helpers").LibraryDefinition<{
9
- cache: typeof Cache;
10
- configuration: typeof Configuration;
11
- fetch: typeof Fetch;
12
- logger: typeof Logger;
13
- metrics: typeof Metrics;
14
- scheduler: typeof Scheduler;
15
- }, {
16
- CACHE_PREFIX: {
17
- default: string;
18
- description: string;
19
- type: "string";
20
- };
21
- CACHE_PROVIDER: {
22
- default: "memory";
23
- description: string;
24
- enum: ("redis" | "memory")[];
25
- type: "string";
26
- };
27
- CACHE_TTL: {
28
- default: number;
29
- description: string;
30
- type: "number";
31
- };
32
- CONFIG: {
33
- description: string;
34
- type: "string";
35
- };
36
- LOG_LEVEL: {
37
- default: "trace";
38
- description: string;
39
- enum: ("debug" | "error" | "info" | "trace" | "warn" | "silent")[];
40
- type: "string";
41
- };
42
- REDIS_URL: {
43
- default: string;
44
- description: string;
45
- type: "string";
46
- };
47
- }>;
48
- export declare let LIB_BOILERPLATE: ReturnType<typeof CreateBoilerplate>;
49
- export declare function CreateApplication<S extends ServiceMap, C extends OptionalModuleConfiguration>({ name, services, configurationLoaders, libraries, configuration, priorityInit, }: ApplicationConfigurationOptions<S, C>): ApplicationDefinition<S, C>;
50
- export {};
@@ -1,374 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LIB_BOILERPLATE = void 0;
4
- exports.CreateApplication = CreateApplication;
5
- const events_1 = require("events");
6
- const process_1 = require("process");
7
- const helpers_1 = require("../helpers");
8
- const _1 = require(".");
9
- const cache_extension_1 = require("./cache.extension");
10
- const configuration_extension_1 = require("./configuration.extension");
11
- const fetch_extension_1 = require("./fetch.extension");
12
- const lifecycle_extension_1 = require("./lifecycle.extension");
13
- const logger_extension_1 = require("./logger.extension");
14
- const scheduler_extension_1 = require("./scheduler.extension");
15
- // #MARK: CreateBoilerplate
16
- function CreateBoilerplate() {
17
- // ! DO NOT MOVE TO ANOTHER FILE !
18
- // While it SEEMS LIKE this can be safely moved, it causes code init race conditions.
19
- return (0, helpers_1.CreateLibrary)({
20
- configuration: {
21
- CACHE_PREFIX: {
22
- default: "",
23
- description: [
24
- "Use a prefix with all cache keys",
25
- "If blank, then application name is used",
26
- ].join(`. `),
27
- type: "string",
28
- },
29
- CACHE_PROVIDER: {
30
- default: "memory",
31
- description: "Redis is preferred if available",
32
- enum: ["redis", "memory"],
33
- type: "string",
34
- },
35
- CACHE_TTL: {
36
- default: 86_400,
37
- description: "Configuration property for cache provider, in seconds",
38
- type: "number",
39
- },
40
- CONFIG: {
41
- description: [
42
- "Consumable as CLI switch only",
43
- "If provided, all other file based configurations will be ignored",
44
- "Environment variables + CLI switches will operate normally",
45
- ].join(". "),
46
- type: "string",
47
- },
48
- LOG_LEVEL: {
49
- default: "trace",
50
- description: "Minimum log level to process",
51
- enum: ["silent", "trace", "info", "warn", "debug", "error"],
52
- type: "string",
53
- },
54
- REDIS_URL: {
55
- default: "redis://localhost:6379",
56
- description: "Configuration property for cache provider, does not apply to memory caching",
57
- type: "string",
58
- },
59
- },
60
- name: "boilerplate",
61
- // > 🐔 🥚 dependencies
62
- // config system internally resolves this via lifecycle events
63
- priorityInit: ["metrics", "configuration", "logger"],
64
- services: {
65
- cache: cache_extension_1.Cache,
66
- configuration: configuration_extension_1.Configuration,
67
- fetch: fetch_extension_1.Fetch,
68
- logger: logger_extension_1.Logger,
69
- metrics: _1.Metrics,
70
- scheduler: scheduler_extension_1.Scheduler,
71
- },
72
- });
73
- }
74
- const RUNNING_APPLICATIONS = new Map();
75
- // #MARK: QuickShutdown
76
- async function QuickShutdown(reason) {
77
- await (0, helpers_1.each)([...RUNNING_APPLICATIONS.values()], async (application) => {
78
- application.logger.warn({ reason }, `starting shutdown`);
79
- await application.teardown();
80
- });
81
- }
82
- // #MARK: processEvents
83
- const processEvents = new Map([
84
- [
85
- "SIGTERM",
86
- async () => {
87
- await QuickShutdown("SIGTERM");
88
- (0, process_1.exit)();
89
- },
90
- ],
91
- [
92
- "SIGINT",
93
- async () => {
94
- await QuickShutdown("SIGINT");
95
- (0, process_1.exit)();
96
- },
97
- ],
98
- // ["uncaughtException", () => {}],
99
- // ["unhandledRejection", (reason, promise) => {}],
100
- ]);
101
- const BOILERPLATE = (internal) => internal.boot.loadedModules.get("boilerplate");
102
- // #MARK: CreateApplication
103
- function CreateApplication({ name, services = {}, configurationLoaders, libraries = [], configuration = {}, priorityInit = [], }) {
104
- let internal;
105
- priorityInit.forEach((name) => {
106
- if (!_1.is.function(services[name])) {
107
- throw new helpers_1.BootstrapException(helpers_1.WIRING_CONTEXT, "MISSING_PRIORITY_SERVICE", `${name} was listed as priority init, but was not found in services`);
108
- }
109
- });
110
- const serviceApis = {};
111
- const application = {
112
- [helpers_1.WIRE_PROJECT]: async (internal) => {
113
- BOILERPLATE(internal)?.configuration?.[configuration_extension_1.LOAD_PROJECT](name, configuration);
114
- await (0, helpers_1.eachSeries)((0, helpers_1.WireOrder)(priorityInit, Object.keys(services)), async (service) => {
115
- serviceApis[service] = await WireService(name, service, services[service], internal.boot.lifecycle.events, internal);
116
- });
117
- const append = internal.boot.options?.appendService;
118
- if (!_1.is.empty(append)) {
119
- await (0, helpers_1.eachSeries)(Object.keys(append), async (service) => {
120
- await WireService(name, service, append[service], internal.boot.lifecycle.events, internal);
121
- });
122
- }
123
- internal.boot.constructComplete.add(name);
124
- },
125
- booted: false,
126
- bootstrap: async (options) => {
127
- if (application.booted) {
128
- throw new helpers_1.BootstrapException(helpers_1.WIRING_CONTEXT, "DOUBLE_BOOT", "Application is already booted! Cannot bootstrap again");
129
- }
130
- internal = new _1.InternalDefinition();
131
- await Bootstrap(application, options, internal);
132
- application.booted = true;
133
- RUNNING_APPLICATIONS.set(name, application);
134
- },
135
- configuration,
136
- configurationLoaders,
137
- libraries,
138
- logger: undefined,
139
- name,
140
- priorityInit,
141
- serviceApis,
142
- services,
143
- teardown: async () => {
144
- if (!application.booted) {
145
- processEvents.forEach((callback, event) => process.removeListener(event, callback));
146
- return;
147
- }
148
- await Teardown(internal, application.logger);
149
- internal?.utils?.event?.removeAllListeners?.();
150
- application.booted = false;
151
- internal = undefined;
152
- },
153
- };
154
- return application;
155
- }
156
- // #MARK: WireService
157
- async function WireService(project, service, definition, lifecycle, internal) {
158
- const mappings = internal.boot.moduleMappings.get(project) ?? {};
159
- mappings[service] = definition;
160
- internal.boot.moduleMappings.set(project, mappings);
161
- const context = (0, helpers_1.COERCE_CONTEXT)(`${project}:${service}`);
162
- // logger gets defined first, so this really is only for the start of the start of bootstrapping
163
- const boilerplate = BOILERPLATE(internal);
164
- const logger = boilerplate?.logger?.context(context);
165
- const loaded = internal.boot.loadedModules.get(project) ?? {};
166
- internal.boot.loadedModules.set(project, loaded);
167
- try {
168
- logger?.trace({ name: WireService }, `initializing`);
169
- const inject = Object.fromEntries([...internal.boot.loadedModules.keys()].map((project) => [
170
- project,
171
- internal.boot.loadedModules.get(project),
172
- ]));
173
- loaded[service] = (await definition({
174
- ...inject,
175
- cache: boilerplate?.cache,
176
- config: boilerplate?.configuration?.[configuration_extension_1.INJECTED_DEFINITIONS](),
177
- context,
178
- event: internal?.utils?.event,
179
- internal,
180
- lifecycle,
181
- logger,
182
- scheduler: boilerplate?.scheduler?.(context),
183
- }));
184
- return loaded[service];
185
- }
186
- catch (error) {
187
- // Init errors at this level are considered blocking / fatal
188
- // eslint-disable-next-line no-console
189
- console.error("initialization error", error);
190
- (0, process_1.exit)();
191
- }
192
- }
193
- const runPreInit = async (internal) => {
194
- const duration = await internal.boot.lifecycle.exec("PreInit");
195
- internal.boot.completedLifecycleEvents.add("PreInit");
196
- return duration;
197
- };
198
- const runPostConfig = async (internal) => {
199
- const duration = await internal.boot.lifecycle.exec("PostConfig");
200
- internal.boot.completedLifecycleEvents.add("PostConfig");
201
- return duration;
202
- };
203
- const runBootstrap = async (internal) => {
204
- const duration = await internal.boot.lifecycle.exec("Bootstrap");
205
- internal.boot.completedLifecycleEvents.add("Bootstrap");
206
- return duration;
207
- };
208
- const runReady = async (internal) => {
209
- const duration = await internal.boot.lifecycle.exec("Ready");
210
- internal.boot.completedLifecycleEvents.add("Ready");
211
- return duration;
212
- };
213
- // #MARK: Bootstrap
214
- async function Bootstrap(application, options = {}, internal) {
215
- // const
216
- internal.boot = {
217
- application,
218
- completedLifecycleEvents: new Set(),
219
- constructComplete: new Set(),
220
- lifecycle: (0, lifecycle_extension_1.CreateLifecycle)(),
221
- loadedModules: new Map(),
222
- moduleMappings: new Map(),
223
- options,
224
- phase: "bootstrap",
225
- startup: new Date(),
226
- };
227
- process.title = application.name;
228
- try {
229
- const STATS = {};
230
- const CONSTRUCT = {};
231
- // pre-create loaded module for boilerplate, so it can be attached to `internal`
232
- // this allows it to be used as part of `internal` during boilerplate construction
233
- // otherwise it'd only be there for everyone else
234
- const api = {};
235
- internal.boilerplate = api;
236
- internal.boot.loadedModules.set("boilerplate", api);
237
- STATS.Construct = CONSTRUCT;
238
- // * Recreate base eventemitter
239
- internal.utils.event = new events_1.EventEmitter();
240
- // ? Some libraries need to be aware of
241
- // * Generate a new boilerplate module
242
- exports.LIB_BOILERPLATE = CreateBoilerplate();
243
- // * Wire it
244
- let start = Date.now();
245
- await exports.LIB_BOILERPLATE[helpers_1.WIRE_PROJECT](internal, WireService);
246
- CONSTRUCT.boilerplate = `${Date.now() - start}ms`;
247
- // ~ configuration
248
- api.configuration?.[configuration_extension_1.LOAD_PROJECT](exports.LIB_BOILERPLATE.name, exports.LIB_BOILERPLATE.configuration);
249
- const logger = api.logger.context(helpers_1.WIRING_CONTEXT);
250
- application.logger = logger;
251
- logger.info({ name: Bootstrap }, `[boilerplate] wiring complete`);
252
- // * Wire in various shutdown events
253
- processEvents.forEach((callback, event) => {
254
- process.on(event, callback);
255
- logger.trace({ event, name: Bootstrap }, "register shutdown event");
256
- });
257
- // * Add in libraries
258
- application.libraries ??= [];
259
- if (!_1.is.undefined(options.appendLibrary)) {
260
- const list = _1.is.array(options.appendLibrary)
261
- ? options.appendLibrary
262
- : [options.appendLibrary];
263
- list.forEach((append) => {
264
- application.libraries.some((library, index) => {
265
- if (append.name === library.name) {
266
- // remove existing
267
- logger.warn({ name: append.name }, `replacing library`);
268
- application.libraries.splice(index, helpers_1.SINGLE);
269
- return true;
270
- }
271
- return false;
272
- });
273
- logger.info({ name: append.name }, `appending library`);
274
- // append
275
- application.libraries.push(append);
276
- });
277
- }
278
- const order = (0, helpers_1.BuildSortOrder)(application, logger);
279
- await (0, helpers_1.eachSeries)(order, async (i) => {
280
- start = Date.now();
281
- logger.info({ name: Bootstrap }, `[%s] init project`, i.name);
282
- await i[helpers_1.WIRE_PROJECT](internal, WireService);
283
- CONSTRUCT[i.name] = `${Date.now() - start}ms`;
284
- });
285
- logger.trace({ name: Bootstrap }, `library wiring complete`);
286
- // * Finally the application
287
- if (options.bootLibrariesFirst) {
288
- logger.warn({ name: Bootstrap }, `bootLibrariesFirst`);
289
- }
290
- else {
291
- logger.info({ name: Bootstrap }, `init application`);
292
- start = Date.now();
293
- await application[helpers_1.WIRE_PROJECT](internal, WireService);
294
- CONSTRUCT[application.name] = `${Date.now() - start}ms`;
295
- }
296
- // ? Configuration values provided bootstrap take priority over module level
297
- if (!_1.is.empty(options?.configuration)) {
298
- api.configuration.merge(options?.configuration);
299
- }
300
- // - Kick off lifecycle
301
- logger.debug({ name: Bootstrap }, `[PreInit] running lifecycle callbacks`);
302
- STATS.PreInit = await runPreInit(internal);
303
- // - Pull in user configurations
304
- logger.debug({ name: Bootstrap }, "loading configuration");
305
- STATS.Configure =
306
- await BOILERPLATE(internal)?.configuration?.[configuration_extension_1.INITIALIZE](application);
307
- // - Run through other events in order
308
- logger.debug({ name: Bootstrap }, `[PostConfig] running lifecycle callbacks`);
309
- STATS.PostConfig = await runPostConfig(internal);
310
- logger.debug({ name: Bootstrap }, `[Bootstrap] running lifecycle callbacks`);
311
- STATS.Bootstrap = await runBootstrap(internal);
312
- if (options.bootLibrariesFirst) {
313
- // * mental note
314
- // running between bootstrap & ready seems most appropriate
315
- // resources are expected to *technically* be ready at this point, but not finalized
316
- // reference examples:
317
- // - hass: socket is open & resources are ready
318
- // - fastify: bindings are available but port isn't listening
319
- logger.info({ name: Bootstrap }, `late init application`);
320
- start = Date.now();
321
- await application[helpers_1.WIRE_PROJECT](internal, WireService);
322
- CONSTRUCT[application.name] = `${Date.now() - start}ms`;
323
- }
324
- logger.debug({ name: Bootstrap }, `[Ready] running lifecycle callbacks`);
325
- STATS.Ready = await runReady(internal);
326
- STATS.Total = `${Date.now() - internal.boot.startup.getTime()}ms`;
327
- // * App is ready!
328
- logger.info(options?.showExtraBootStats
329
- ? { ...STATS, name: Bootstrap }
330
- : { Total: STATS.Total, name: Bootstrap }, `[%s] application bootstrapped`, application.name);
331
- internal.boot.phase = "running";
332
- }
333
- catch (error) {
334
- if (options?.configuration?.boilerplate?.LOG_LEVEL !== "silent") {
335
- // eslint-disable-next-line no-console
336
- console.error("bootstrap failed", error);
337
- }
338
- (0, process_1.exit)();
339
- }
340
- }
341
- // #MARK: Teardown
342
- async function Teardown(internal, logger) {
343
- if (!internal) {
344
- return;
345
- }
346
- // * Announce
347
- logger.warn({ name: Teardown }, `received teardown request`);
348
- internal.boot.phase = "teardown";
349
- try {
350
- // * PreShutdown
351
- logger.debug({ name: Teardown }, `[PreShutdown] running lifecycle callbacks`);
352
- await internal.boot.lifecycle.exec("PreShutdown");
353
- internal.boot.completedLifecycleEvents.add("PreShutdown");
354
- // * Formally shutting down
355
- logger.info({ name: Teardown }, `tearing down application`);
356
- logger.debug({ name: Teardown }, `[ShutdownStart] running lifecycle callbacks`);
357
- await internal.boot.lifecycle.exec("ShutdownStart");
358
- internal.boot.completedLifecycleEvents.add("ShutdownStart");
359
- logger.debug({ name: Teardown }, `[ShutdownComplete] running lifecycle callbacks`);
360
- await internal.boot.lifecycle.exec("ShutdownComplete");
361
- internal.boot.completedLifecycleEvents.add("ShutdownComplete");
362
- }
363
- catch (error) {
364
- // ! oof
365
- logger.error({ error, name: Teardown }, "error occurred during teardown, some lifecycle events may be incomplete");
366
- }
367
- // * Final resource cleanup, attempt to reset everything possible
368
- logger.info({
369
- name: Teardown,
370
- started_at: internal.utils.relativeDate(internal.boot.startup),
371
- }, `application terminated`);
372
- processEvents.forEach((callback, event) => process.removeListener(event, callback));
373
- }
374
- //# sourceMappingURL=wiring.extension.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"wiring.extension.js","sourceRoot":"","sources":["../../src/extensions/wiring.extension.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- import NodeCache from "node-cache";
2
- import { CacheDriverOptions, ICacheDriver } from "..";
3
- /**
4
- * url & name properties automatically generated from config
5
- */
6
- export declare function createMemoryDriver({ logger, config, lifecycle, internal }: CacheDriverOptions, options?: NodeCache.Options): ICacheDriver;
@@ -1,68 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createMemoryDriver = createMemoryDriver;
4
- const tslib_1 = require("tslib");
5
- /* eslint-disable sonarjs/no-duplicate-string */
6
- const node_cache_1 = tslib_1.__importDefault(require("node-cache"));
7
- const __1 = require("..");
8
- /**
9
- * url & name properties automatically generated from config
10
- */
11
- function createMemoryDriver({ logger, config, lifecycle, internal }, options) {
12
- let client = new node_cache_1.default({
13
- stdTTL: config.boilerplate.CACHE_TTL,
14
- ...options,
15
- });
16
- lifecycle.onShutdownStart(() => {
17
- logger.info({ name: "onShutdownStart" }, `cleanup`);
18
- client = undefined;
19
- });
20
- return {
21
- async del(key) {
22
- try {
23
- client.del(key);
24
- }
25
- catch (error) {
26
- logger.error({ err: error, name: "del" }, "memory cache error");
27
- internal.boilerplate.metrics.MEMORY_CACHE_ERROR_COUNT.inc();
28
- }
29
- },
30
- async get(key, defaultValue) {
31
- try {
32
- const out = client.get(key);
33
- if (__1.is.string(out)) {
34
- return JSON.parse(out);
35
- }
36
- return defaultValue;
37
- }
38
- catch (error) {
39
- logger.error({ err: error, name: "get" }, "memory cache error");
40
- internal.boilerplate.metrics.MEMORY_CACHE_ERROR_COUNT.inc();
41
- return defaultValue;
42
- }
43
- },
44
- async keys(pattern) {
45
- try {
46
- const allKeys = client.keys();
47
- return pattern
48
- ? allKeys.filter((key) => new RegExp(pattern).test(key))
49
- : allKeys;
50
- }
51
- catch (error) {
52
- logger.error({ err: error, name: "keys" }, "memory cache error");
53
- internal.boilerplate.metrics.MEMORY_CACHE_ERROR_COUNT.inc();
54
- return [];
55
- }
56
- },
57
- async set(key, value, ttl) {
58
- try {
59
- client.set(key, JSON.stringify(value), ttl);
60
- }
61
- catch (error) {
62
- logger.error({ err: error, name: "set" }, "memory cache error");
63
- internal.boilerplate.metrics.MEMORY_CACHE_ERROR_COUNT.inc();
64
- }
65
- },
66
- };
67
- }
68
- //# sourceMappingURL=cache-memory.helper.js.map