@digital-alchemy/core 24.8.4 → 24.9.4
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 +17 -27
- package/dist/helpers/async.helper.d.ts +1 -1
- package/dist/helpers/async.helper.js +13 -14
- package/dist/helpers/async.helper.js.map +1 -1
- package/dist/helpers/config-environment-loader.helper.js +16 -20
- package/dist/helpers/config-environment-loader.helper.js.map +1 -1
- package/dist/helpers/config-file-loader.helper.d.ts +5 -3
- package/dist/helpers/config-file-loader.helper.js +45 -52
- package/dist/helpers/config-file-loader.helper.js.map +1 -1
- package/dist/helpers/config.helper.d.ts +24 -3
- package/dist/helpers/config.helper.js +30 -37
- package/dist/helpers/config.helper.js.map +1 -1
- package/dist/helpers/context.helper.js +1 -2
- package/dist/helpers/cron.helper.d.ts +27 -0
- package/dist/helpers/cron.helper.js +4 -7
- package/dist/helpers/cron.helper.js.map +1 -1
- package/dist/helpers/errors.helper.d.ts +0 -12
- package/dist/helpers/errors.helper.js +2 -23
- package/dist/helpers/errors.helper.js.map +1 -1
- package/dist/helpers/events.helper.js +4 -10
- package/dist/helpers/events.helper.js.map +1 -1
- package/dist/helpers/extend.helper.d.ts +2 -0
- package/dist/helpers/extend.helper.js +19 -24
- package/dist/helpers/extend.helper.js.map +1 -1
- package/dist/helpers/index.d.ts +2 -4
- package/dist/helpers/index.js +14 -19
- package/dist/helpers/index.js.map +1 -1
- package/dist/helpers/lifecycle.helper.d.ts +1 -5
- package/dist/helpers/lifecycle.helper.js +1 -4
- package/dist/helpers/lifecycle.helper.js.map +1 -1
- package/dist/{extensions/logger.extension.d.ts → helpers/logger.helper.d.ts} +33 -40
- package/dist/helpers/logger.helper.js +10 -0
- package/dist/helpers/logger.helper.js.map +1 -0
- package/dist/helpers/module.helper.d.ts +74 -0
- package/dist/helpers/module.helper.js +131 -0
- package/dist/helpers/module.helper.js.map +1 -0
- package/dist/helpers/utilities.helper.d.ts +3 -14
- package/dist/helpers/utilities.helper.js +51 -73
- package/dist/helpers/utilities.helper.js.map +1 -1
- package/dist/helpers/wiring.helper.d.ts +77 -23
- package/dist/helpers/wiring.helper.js +45 -47
- package/dist/helpers/wiring.helper.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +3 -5
- package/dist/index.js.map +1 -1
- package/dist/services/als.extension.d.ts +2 -0
- package/dist/services/als.extension.js +17 -0
- package/dist/services/als.extension.js.map +1 -0
- package/dist/services/configuration.extension.d.ts +7 -0
- package/dist/services/configuration.extension.js +117 -0
- package/dist/services/configuration.extension.js.map +1 -0
- package/dist/{extensions → services}/index.d.ts +1 -3
- package/dist/services/index.js +8 -0
- package/dist/services/index.js.map +1 -0
- package/dist/{extensions → services}/internal.extension.d.ts +7 -23
- package/dist/{extensions → services}/internal.extension.js +43 -55
- package/dist/services/internal.extension.js.map +1 -0
- package/dist/{extensions → services}/is.extension.d.ts +5 -0
- package/dist/{extensions → services}/is.extension.js +20 -15
- package/dist/services/is.extension.js.map +1 -0
- package/dist/{extensions → services}/lifecycle.extension.js +17 -19
- package/dist/services/lifecycle.extension.js.map +1 -0
- package/dist/services/logger.extension.d.ts +2 -0
- package/dist/services/logger.extension.js +201 -0
- package/dist/services/logger.extension.js.map +1 -0
- package/dist/services/scheduler.extension.d.ts +2 -0
- package/dist/services/scheduler.extension.js +108 -0
- package/dist/services/scheduler.extension.js.map +1 -0
- package/dist/services/wiring.extension.d.ts +111 -0
- package/dist/services/wiring.extension.js +437 -0
- package/dist/services/wiring.extension.js.map +1 -0
- package/dist/testing/index.d.ts +2 -0
- package/dist/testing/index.js +3 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/testing/mock-logger.d.ts +2 -0
- package/dist/testing/mock-logger.js +11 -0
- package/dist/testing/mock-logger.js.map +1 -0
- package/dist/testing/test-module.d.ts +112 -0
- package/dist/testing/test-module.js +138 -0
- package/dist/testing/test-module.js.map +1 -0
- package/package.json +56 -43
- package/dist/extensions/cache.extension.d.ts +0 -2
- package/dist/extensions/cache.extension.js +0 -90
- package/dist/extensions/cache.extension.js.map +0 -1
- package/dist/extensions/configuration.extension.d.ts +0 -52
- package/dist/extensions/configuration.extension.js +0 -131
- package/dist/extensions/configuration.extension.js.map +0 -1
- package/dist/extensions/fetch.extension.d.ts +0 -17
- package/dist/extensions/fetch.extension.js +0 -133
- package/dist/extensions/fetch.extension.js.map +0 -1
- package/dist/extensions/index.js +0 -13
- package/dist/extensions/index.js.map +0 -1
- package/dist/extensions/internal.extension.js.map +0 -1
- package/dist/extensions/is.extension.js.map +0 -1
- package/dist/extensions/lifecycle.extension.js.map +0 -1
- package/dist/extensions/logger.extension.js +0 -186
- package/dist/extensions/logger.extension.js.map +0 -1
- package/dist/extensions/metrics.extension.d.ts +0 -18
- package/dist/extensions/metrics.extension.js +0 -156
- package/dist/extensions/metrics.extension.js.map +0 -1
- package/dist/extensions/scheduler.extension.d.ts +0 -21
- package/dist/extensions/scheduler.extension.js +0 -133
- package/dist/extensions/scheduler.extension.js.map +0 -1
- package/dist/extensions/wiring.extension.d.ts +0 -50
- package/dist/extensions/wiring.extension.js +0 -374
- package/dist/extensions/wiring.extension.js.map +0 -1
- package/dist/helpers/cache-memory.helper.d.ts +0 -6
- package/dist/helpers/cache-memory.helper.js +0 -68
- package/dist/helpers/cache-memory.helper.js.map +0 -1
- package/dist/helpers/cache-redis.helper.d.ts +0 -6
- package/dist/helpers/cache-redis.helper.js +0 -73
- package/dist/helpers/cache-redis.helper.js.map +0 -1
- package/dist/helpers/cache.helper.d.ts +0 -19
- package/dist/helpers/cache.helper.js +0 -9
- package/dist/helpers/cache.helper.js.map +0 -1
- package/dist/helpers/fetch.helper.d.ts +0 -165
- package/dist/helpers/fetch.helper.js +0 -173
- package/dist/helpers/fetch.helper.js.map +0 -1
- /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
|