@digital-alchemy/core 0.3.11 → 0.3.13
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/dist/extensions/internal.extension.d.ts +14 -1
- package/dist/extensions/internal.extension.js.map +1 -1
- package/dist/extensions/lifecycle.extension.d.ts +4 -0
- package/dist/extensions/lifecycle.extension.js +39 -0
- package/dist/extensions/lifecycle.extension.js.map +1 -0
- package/dist/extensions/wiring.extension.d.ts +3 -18
- package/dist/extensions/wiring.extension.js +101 -242
- package/dist/extensions/wiring.extension.js.map +1 -1
- package/dist/helpers/wiring.helper.d.ts +19 -1
- package/dist/helpers/wiring.helper.js +103 -1
- package/dist/helpers/wiring.helper.js.map +1 -1
- package/package.json +6 -1
|
@@ -3,7 +3,7 @@ import { Dayjs } from "dayjs";
|
|
|
3
3
|
import { EventEmitter } from "events";
|
|
4
4
|
import { Counter, Summary } from "prom-client";
|
|
5
5
|
import { Get } from "type-fest";
|
|
6
|
-
import { ApplicationDefinition, BootstrapOptions, GetApis, LIB_BOILERPLATE, LifecycleStages, OptionalModuleConfiguration, ServiceMap, TBlackHole, TContext } from "..";
|
|
6
|
+
import { ApplicationDefinition, BootstrapOptions, GetApis, LIB_BOILERPLATE, LifecycleStages, OptionalModuleConfiguration, ServiceMap, TBlackHole, TContext, TLoadableChildLifecycle, TModuleMappings, TResolvedModuleMappings } from "..";
|
|
7
7
|
type inputFormats = Date | string | number | Dayjs;
|
|
8
8
|
export declare class InternalUtils {
|
|
9
9
|
/**
|
|
@@ -64,6 +64,19 @@ export declare class InternalDefinition {
|
|
|
64
64
|
* Roughly speaking, what's the application doing? Mostly useful for debugging
|
|
65
65
|
*/
|
|
66
66
|
phase: Phase;
|
|
67
|
+
/**
|
|
68
|
+
* Registry for various lifecycle events that were registered by services
|
|
69
|
+
*/
|
|
70
|
+
lifecycleHooks: Map<string, TLoadableChildLifecycle>;
|
|
71
|
+
/**
|
|
72
|
+
* association of projects to { service : Declaration Function }
|
|
73
|
+
*/
|
|
74
|
+
moduleMappings: Map<string, TModuleMappings>;
|
|
75
|
+
/**
|
|
76
|
+
* association of projects to { service : Initialized Service }
|
|
77
|
+
*/
|
|
78
|
+
loadedModules: Map<string, TResolvedModuleMappings>;
|
|
79
|
+
startup: Date;
|
|
67
80
|
};
|
|
68
81
|
utils: InternalUtils;
|
|
69
82
|
safeExec<LABELS extends BaseLabels>(options: (() => TBlackHole) | SafeExecOptions<LABELS>): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal.extension.js","sourceRoot":"","sources":["../../src/extensions/internal.extension.ts"],"names":[],"mappings":";;;;AAAA,0DAAqC;AACrC,mCAAsC;AAItC,
|
|
1
|
+
{"version":3,"file":"internal.extension.js","sourceRoot":"","sources":["../../src/extensions/internal.extension.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { TLoadableChildLifecycle } from "../helpers";
|
|
2
|
+
import { InternalDefinition } from "./internal.extension";
|
|
3
|
+
import { ILogger } from "./logger.extension";
|
|
4
|
+
export declare function CreateChildLifecycle(internal: InternalDefinition, logger: ILogger): TLoadableChildLifecycle;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CreateChildLifecycle = void 0;
|
|
4
|
+
const helpers_1 = require("../helpers");
|
|
5
|
+
function CreateChildLifecycle(internal, logger) {
|
|
6
|
+
const childCallbacks = {};
|
|
7
|
+
const [
|
|
8
|
+
// ! This list must be sorted!
|
|
9
|
+
onPreInit, onPostConfig, onBootstrap, onReady, onPreShutdown, onShutdownStart, onShutdownComplete,] = helpers_1.LIFECYCLE_STAGES.map((stage) => {
|
|
10
|
+
childCallbacks[stage] = [];
|
|
11
|
+
return (callback, priority) => {
|
|
12
|
+
if (internal.boot.completedLifecycleEvents.has(stage)) {
|
|
13
|
+
// this is makes "earliest run time" logic way easier to implement
|
|
14
|
+
// intended mode of operation
|
|
15
|
+
if (["PreInit", "PostConfig", "Bootstrap", "Ready"].includes(stage)) {
|
|
16
|
+
setImmediate(async () => await callback());
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
// What does this mean in reality?
|
|
20
|
+
// Probably a broken unit test, I really don't know what workflow would cause this
|
|
21
|
+
logger.fatal({ name: CreateChildLifecycle }, `on${stage} late attach, cannot attach callback`);
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
childCallbacks[stage].push([callback, priority]);
|
|
25
|
+
};
|
|
26
|
+
});
|
|
27
|
+
return {
|
|
28
|
+
getCallbacks: (stage) => childCallbacks[stage],
|
|
29
|
+
onBootstrap,
|
|
30
|
+
onPostConfig,
|
|
31
|
+
onPreInit,
|
|
32
|
+
onPreShutdown,
|
|
33
|
+
onReady,
|
|
34
|
+
onShutdownComplete,
|
|
35
|
+
onShutdownStart,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
exports.CreateChildLifecycle = CreateChildLifecycle;
|
|
39
|
+
//# sourceMappingURL=lifecycle.extension.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lifecycle.extension.js","sourceRoot":"","sources":["../../src/extensions/lifecycle.extension.ts"],"names":[],"mappings":";;;AAAA,wCAMoB;AAIpB,SAAgB,oBAAoB,CAClC,QAA4B,EAC5B,MAAe;IAEf,MAAM,cAAc,GAAG,EAA2C,CAAC;IAEnE,MAAM;IACJ,8BAA8B;IAC9B,SAAS,EACT,YAAY,EACZ,WAAW,EACX,OAAO,EACP,aAAa,EACb,eAAe,EACf,kBAAkB,EACnB,GAAG,0BAAgB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACjC,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QAC3B,OAAO,CAAC,QAA2B,EAAE,QAAiB,EAAE,EAAE;YACxD,IAAI,QAAQ,CAAC,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtD,kEAAkE;gBAClE,6BAA6B;gBAC7B,IAAI,CAAC,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;oBACpE,YAAY,CAAC,KAAK,IAAI,EAAE,CAAC,MAAM,QAAQ,EAAE,CAAC,CAAC;oBAC3C,OAAO;gBACT,CAAC;gBACD,kCAAkC;gBAClC,kFAAkF;gBAClF,MAAM,CAAC,KAAK,CACV,EAAE,IAAI,EAAE,oBAAoB,EAAE,EAC9B,KAAK,KAAK,sCAAsC,CACjD,CAAC;gBACF,OAAO;YACT,CAAC;YACD,cAAc,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;QACnD,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,YAAY,EAAE,CAAC,KAAsB,EAAE,EAAE,CACvC,cAAc,CAAC,KAAK,CAAiB;QACvC,WAAW;QACX,YAAY;QACZ,SAAS;QACT,aAAa;QACb,OAAO;QACP,kBAAkB;QAClB,eAAe;KAChB,CAAC;AACJ,CAAC;AAhDD,oDAgDC"}
|
|
@@ -1,24 +1,10 @@
|
|
|
1
|
-
import { ApplicationConfigurationOptions, ApplicationDefinition,
|
|
1
|
+
import { ApplicationConfigurationOptions, ApplicationDefinition, OptionalModuleConfiguration, ServiceMap, StringConfig } from "../helpers";
|
|
2
2
|
import { Cache } from "./cache.extension";
|
|
3
3
|
import { Configuration } from "./configuration.extension";
|
|
4
4
|
import { Fetch } from "./fetch.extension";
|
|
5
5
|
import { Logger, TConfigLogLevel } from "./logger.extension";
|
|
6
6
|
import { Scheduler } from "./scheduler.extension";
|
|
7
|
-
|
|
8
|
-
* association of projects to { service : Declaration Function }
|
|
9
|
-
*/
|
|
10
|
-
export declare let MODULE_MAPPINGS: Map<string, TModuleMappings>;
|
|
11
|
-
/**
|
|
12
|
-
* association of projects to { service : Initialized Service }
|
|
13
|
-
*/
|
|
14
|
-
export declare let LOADED_MODULES: Map<string, TResolvedModuleMappings>;
|
|
15
|
-
/**
|
|
16
|
-
* Optimized reverse lookups: Declaration Function => [project, service]
|
|
17
|
-
*/
|
|
18
|
-
export declare let REVERSE_MODULE_MAPPING: Map<ServiceFunction, [project: string, service: string]>;
|
|
19
|
-
export declare let LOADED_LIFECYCLES: Map<string, TLoadableChildLifecycle>;
|
|
20
|
-
export declare let LIB_BOILERPLATE: ReturnType<typeof CreateBoilerplate>;
|
|
21
|
-
declare function CreateBoilerplate(): LibraryDefinition<{
|
|
7
|
+
declare function CreateBoilerplate(): import("../helpers").LibraryDefinition<{
|
|
22
8
|
cache: typeof Cache;
|
|
23
9
|
configuration: typeof Configuration;
|
|
24
10
|
fetch: typeof Fetch;
|
|
@@ -47,7 +33,6 @@ declare function CreateBoilerplate(): LibraryDefinition<{
|
|
|
47
33
|
type: "string";
|
|
48
34
|
};
|
|
49
35
|
}>;
|
|
50
|
-
export declare
|
|
36
|
+
export declare let LIB_BOILERPLATE: ReturnType<typeof CreateBoilerplate>;
|
|
51
37
|
export declare function CreateApplication<S extends ServiceMap, C extends OptionalModuleConfiguration>({ name, services, configurationLoaders, libraries, configuration, priorityInit, }: ApplicationConfigurationOptions<S, C>): ApplicationDefinition<S, C>;
|
|
52
|
-
export declare function Reset(): void;
|
|
53
38
|
export {};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.CreateApplication = exports.LIB_BOILERPLATE = void 0;
|
|
4
4
|
const events_1 = require("events");
|
|
5
5
|
const process_1 = require("process");
|
|
6
6
|
const helpers_1 = require("../helpers");
|
|
@@ -8,74 +8,14 @@ const _1 = require(".");
|
|
|
8
8
|
const cache_extension_1 = require("./cache.extension");
|
|
9
9
|
const configuration_extension_1 = require("./configuration.extension");
|
|
10
10
|
const fetch_extension_1 = require("./fetch.extension");
|
|
11
|
+
const lifecycle_extension_1 = require("./lifecycle.extension");
|
|
11
12
|
const logger_extension_1 = require("./logger.extension");
|
|
12
13
|
const scheduler_extension_1 = require("./scheduler.extension");
|
|
13
|
-
// #MARK: Variables
|
|
14
|
-
// These are resettable variables, which are scoped to outside the function on purpose
|
|
15
|
-
// If these were moved inside the service function, then re-running the method would result in application / library references being stranded
|
|
16
|
-
// Items like lib_boilerplate would still exist, but their lifecycles would be not accessible by the current application
|
|
17
|
-
//
|
|
18
|
-
// By moving to outside the function, the internal methods will be able to re-initialize as expected, without needing to fully rebuild every reference everywhere
|
|
19
|
-
// ... in theory
|
|
20
|
-
/**
|
|
21
|
-
* association of projects to { service : Declaration Function }
|
|
22
|
-
*/
|
|
23
|
-
exports.MODULE_MAPPINGS = new Map();
|
|
24
|
-
/**
|
|
25
|
-
* association of projects to { service : Initialized Service }
|
|
26
|
-
*/
|
|
27
|
-
exports.LOADED_MODULES = new Map();
|
|
28
|
-
/**
|
|
29
|
-
* Optimized reverse lookups: Declaration Function => [project, service]
|
|
30
|
-
*/
|
|
31
|
-
exports.REVERSE_MODULE_MAPPING = new Map();
|
|
32
|
-
exports.LOADED_LIFECYCLES = new Map();
|
|
33
|
-
// heisenberg's variables. it's probably here, but maybe not
|
|
34
|
-
// let scheduler: (context: TContext) => TScheduler;
|
|
35
|
-
let logger;
|
|
36
|
-
let internal;
|
|
37
|
-
const COERCE_CONTEXT = (context) => context;
|
|
38
|
-
const WIRING_CONTEXT = COERCE_CONTEXT("boilerplate:wiring");
|
|
39
|
-
// exporting a let makes me feel dirty inside
|
|
40
|
-
// at least it's only for testing
|
|
41
|
-
// #MARK: processEvents
|
|
42
|
-
const processEvents = new Map([
|
|
43
|
-
[
|
|
44
|
-
"SIGTERM",
|
|
45
|
-
async () => {
|
|
46
|
-
logger.warn({ name: "SIGTERM" }, `starting`);
|
|
47
|
-
await Teardown();
|
|
48
|
-
(0, process_1.exit)();
|
|
49
|
-
},
|
|
50
|
-
],
|
|
51
|
-
[
|
|
52
|
-
"SIGINT",
|
|
53
|
-
async () => {
|
|
54
|
-
logger.warn({ name: "SIGINT" }, `starting`);
|
|
55
|
-
await Teardown();
|
|
56
|
-
(0, process_1.exit)();
|
|
57
|
-
},
|
|
58
|
-
],
|
|
59
|
-
// ["uncaughtException", () => {}],
|
|
60
|
-
// ["unhandledRejection", (reason, promise) => {}],
|
|
61
|
-
]);
|
|
62
|
-
const BOILERPLATE = () => exports.LOADED_MODULES.get("boilerplate");
|
|
63
|
-
// #MARK: ValidateLibrary
|
|
64
|
-
function ValidateLibrary(project, serviceList) {
|
|
65
|
-
if (_1.is.empty(project)) {
|
|
66
|
-
throw new helpers_1.BootstrapException(COERCE_CONTEXT("CreateLibrary"), "MISSING_LIBRARY_NAME", "Library name is required");
|
|
67
|
-
}
|
|
68
|
-
const services = Object.entries(serviceList);
|
|
69
|
-
// Find the first invalid service
|
|
70
|
-
const invalidService = services.find(([, definition]) => typeof definition !== "function");
|
|
71
|
-
if (invalidService) {
|
|
72
|
-
const [invalidServiceName, service] = invalidService;
|
|
73
|
-
throw new helpers_1.BootstrapException(COERCE_CONTEXT("CreateLibrary"), "INVALID_SERVICE_DEFINITION", `Invalid service definition for '${invalidServiceName}' in library '${project}' (${typeof service}})`);
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
14
|
// #MARK: CreateBoilerplate
|
|
77
15
|
function CreateBoilerplate() {
|
|
78
|
-
|
|
16
|
+
// ! DO NOT MOVE TO ANOTHER FILE !
|
|
17
|
+
// While it SEEMS LIKE this can be safely moved, it causes code init race conditions.
|
|
18
|
+
return (0, helpers_1.CreateLibrary)({
|
|
79
19
|
configuration: {
|
|
80
20
|
CACHE_PREFIX: {
|
|
81
21
|
default: "",
|
|
@@ -129,87 +69,90 @@ function CreateBoilerplate() {
|
|
|
129
69
|
},
|
|
130
70
|
});
|
|
131
71
|
}
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
}
|
|
141
|
-
return [...out, ...list.filter((i) => !out.includes(i))];
|
|
72
|
+
const PRE_CALLBACKS_START = 0;
|
|
73
|
+
const RUNNING_APPLICATIONS = new Map();
|
|
74
|
+
// #MARK: QuickShutdown
|
|
75
|
+
async function QuickShutdown(reason) {
|
|
76
|
+
await (0, helpers_1.each)([...RUNNING_APPLICATIONS.values()], async (application) => {
|
|
77
|
+
application.logger.warn({ reason }, `starting shutdown`);
|
|
78
|
+
await application.teardown();
|
|
79
|
+
});
|
|
142
80
|
}
|
|
143
|
-
// #MARK:
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
// This one hasn't been loaded yet, generate an object with all the correct properties
|
|
151
|
-
exports.LOADED_LIFECYCLES.set(libraryName, lifecycle);
|
|
152
|
-
// not defined for boilerplate (chicken & egg)
|
|
153
|
-
// manually added inside the bootstrap process
|
|
154
|
-
const config = internal?.boilerplate.configuration;
|
|
155
|
-
config?.[configuration_extension_1.LOAD_PROJECT](libraryName, configuration);
|
|
156
|
-
await (0, helpers_1.eachSeries)(WireOrder(priorityInit, Object.keys(services)), async (service) => {
|
|
157
|
-
serviceApis[service] = await WireService(libraryName, service, services[service], lifecycle, internal);
|
|
158
|
-
});
|
|
159
|
-
// mental note: people should probably do all their lifecycle attachments at the base level function
|
|
160
|
-
// otherwise, it'll happen after this wire() call, and go into a black hole (worst case) or fatal error ("best" case)
|
|
161
|
-
return lifecycle;
|
|
81
|
+
// #MARK: processEvents
|
|
82
|
+
const processEvents = new Map([
|
|
83
|
+
[
|
|
84
|
+
"SIGTERM",
|
|
85
|
+
async () => {
|
|
86
|
+
await QuickShutdown("SIGTERM");
|
|
87
|
+
(0, process_1.exit)();
|
|
162
88
|
},
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
}
|
|
172
|
-
|
|
89
|
+
],
|
|
90
|
+
[
|
|
91
|
+
"SIGINT",
|
|
92
|
+
async () => {
|
|
93
|
+
await QuickShutdown("SIGINT");
|
|
94
|
+
(0, process_1.exit)();
|
|
95
|
+
},
|
|
96
|
+
],
|
|
97
|
+
// ["uncaughtException", () => {}],
|
|
98
|
+
// ["unhandledRejection", (reason, promise) => {}],
|
|
99
|
+
]);
|
|
100
|
+
const BOILERPLATE = (internal) => internal.boot.loadedModules.get("boilerplate");
|
|
173
101
|
// #MARK: CreateApplication
|
|
174
|
-
function CreateApplication({ name, services, configurationLoaders, libraries = [], configuration = {}, priorityInit = [], }) {
|
|
102
|
+
function CreateApplication({ name, services = {}, configurationLoaders, libraries = [], configuration = {}, priorityInit = [], }) {
|
|
103
|
+
let internal;
|
|
175
104
|
priorityInit.forEach((name) => {
|
|
176
105
|
if (!_1.is.function(services[name])) {
|
|
177
|
-
throw new helpers_1.BootstrapException(WIRING_CONTEXT, "MISSING_PRIORITY_SERVICE", `${name} was listed as priority init, but was not found in services`);
|
|
106
|
+
throw new helpers_1.BootstrapException(helpers_1.WIRING_CONTEXT, "MISSING_PRIORITY_SERVICE", `${name} was listed as priority init, but was not found in services`);
|
|
178
107
|
}
|
|
179
108
|
});
|
|
180
109
|
const serviceApis = {};
|
|
181
110
|
const application = {
|
|
182
111
|
[helpers_1.WIRE_PROJECT]: async (internal) => {
|
|
183
|
-
const lifecycle = CreateChildLifecycle(internal);
|
|
184
|
-
|
|
185
|
-
BOILERPLATE()?.configuration?.[configuration_extension_1.LOAD_PROJECT](name, configuration);
|
|
186
|
-
await (0, helpers_1.eachSeries)(WireOrder(priorityInit, Object.keys(services)), async (service) => {
|
|
112
|
+
const lifecycle = (0, lifecycle_extension_1.CreateChildLifecycle)(internal, application.logger);
|
|
113
|
+
internal.boot.lifecycleHooks.set(name, lifecycle);
|
|
114
|
+
BOILERPLATE(internal)?.configuration?.[configuration_extension_1.LOAD_PROJECT](name, configuration);
|
|
115
|
+
await (0, helpers_1.eachSeries)((0, helpers_1.WireOrder)(priorityInit, Object.keys(services)), async (service) => {
|
|
187
116
|
serviceApis[service] = await WireService(name, service, services[service], lifecycle, internal);
|
|
188
117
|
});
|
|
118
|
+
const append = internal.boot.options?.appendService;
|
|
119
|
+
if (!_1.is.empty(append)) {
|
|
120
|
+
await (0, helpers_1.eachSeries)(Object.keys(append), async (service) => {
|
|
121
|
+
await WireService(name, service, append[service], lifecycle, internal);
|
|
122
|
+
});
|
|
123
|
+
}
|
|
189
124
|
return lifecycle;
|
|
190
125
|
},
|
|
191
126
|
booted: false,
|
|
192
127
|
bootstrap: async (options) => {
|
|
193
128
|
if (application.booted) {
|
|
194
|
-
throw new helpers_1.BootstrapException(WIRING_CONTEXT, "DOUBLE_BOOT", "Application is already booted! Cannot bootstrap again");
|
|
129
|
+
throw new helpers_1.BootstrapException(helpers_1.WIRING_CONTEXT, "DOUBLE_BOOT", "Application is already booted! Cannot bootstrap again");
|
|
130
|
+
}
|
|
131
|
+
if (internal) {
|
|
132
|
+
throw new helpers_1.BootstrapException(helpers_1.WIRING_CONTEXT, "NO_DUAL_BOOT", "Another application is already active, please terminate");
|
|
195
133
|
}
|
|
196
|
-
|
|
134
|
+
internal = new _1.InternalDefinition();
|
|
135
|
+
await Bootstrap(application, options, internal);
|
|
197
136
|
application.booted = true;
|
|
137
|
+
RUNNING_APPLICATIONS.set(name, application);
|
|
198
138
|
},
|
|
199
139
|
configuration,
|
|
200
140
|
configurationLoaders,
|
|
201
141
|
libraries,
|
|
142
|
+
logger: undefined,
|
|
202
143
|
name,
|
|
203
144
|
priorityInit,
|
|
204
145
|
serviceApis,
|
|
205
146
|
services,
|
|
206
147
|
teardown: async () => {
|
|
207
148
|
if (!application.booted) {
|
|
208
|
-
|
|
149
|
+
processEvents.forEach((callback, event) => process.removeListener(event, callback));
|
|
209
150
|
return;
|
|
210
151
|
}
|
|
211
|
-
await Teardown();
|
|
152
|
+
await Teardown(internal, application.logger);
|
|
153
|
+
internal?.utils?.event?.removeAllListeners?.();
|
|
212
154
|
application.booted = false;
|
|
155
|
+
internal = undefined;
|
|
213
156
|
},
|
|
214
157
|
};
|
|
215
158
|
return application;
|
|
@@ -217,24 +160,23 @@ function CreateApplication({ name, services, configurationLoaders, libraries = [
|
|
|
217
160
|
exports.CreateApplication = CreateApplication;
|
|
218
161
|
// #MARK: WireService
|
|
219
162
|
async function WireService(project, service, definition, lifecycle, internal) {
|
|
220
|
-
const mappings =
|
|
163
|
+
const mappings = internal.boot.moduleMappings.get(project) ?? {};
|
|
221
164
|
if (!_1.is.undefined(mappings[service])) {
|
|
222
|
-
throw new helpers_1.BootstrapException(WIRING_CONTEXT, "DUPLICATE_SERVICE_NAME", `${service} is already defined for ${project}`);
|
|
165
|
+
throw new helpers_1.BootstrapException(helpers_1.WIRING_CONTEXT, "DUPLICATE_SERVICE_NAME", `${service} is already defined for ${project}`);
|
|
223
166
|
}
|
|
224
167
|
mappings[service] = definition;
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
const context = COERCE_CONTEXT(`${project}:${service}`);
|
|
168
|
+
internal.boot.moduleMappings.set(project, mappings);
|
|
169
|
+
const context = (0, helpers_1.COERCE_CONTEXT)(`${project}:${service}`);
|
|
228
170
|
// logger gets defined first, so this really is only for the start of the start of bootstrapping
|
|
229
|
-
const boilerplate = BOILERPLATE();
|
|
171
|
+
const boilerplate = BOILERPLATE(internal);
|
|
230
172
|
const logger = boilerplate?.logger?.context(context);
|
|
231
|
-
const loaded =
|
|
232
|
-
|
|
173
|
+
const loaded = internal.boot.loadedModules.get(project) ?? {};
|
|
174
|
+
internal.boot.loadedModules.set(project, loaded);
|
|
233
175
|
try {
|
|
234
176
|
logger?.trace({ name: WireService }, `initializing`);
|
|
235
|
-
const inject = Object.fromEntries([...
|
|
177
|
+
const inject = Object.fromEntries([...internal.boot.loadedModules.keys()].map((project) => [
|
|
236
178
|
project,
|
|
237
|
-
|
|
179
|
+
internal.boot.loadedModules.get(project),
|
|
238
180
|
]));
|
|
239
181
|
loaded[service] = (await definition({
|
|
240
182
|
...inject,
|
|
@@ -257,14 +199,14 @@ async function WireService(project, service, definition, lifecycle, internal) {
|
|
|
257
199
|
}
|
|
258
200
|
}
|
|
259
201
|
// #MARK: RunStageCallbacks
|
|
260
|
-
async function RunStageCallbacks(stage) {
|
|
202
|
+
async function RunStageCallbacks(stage, internal) {
|
|
261
203
|
const start = Date.now();
|
|
262
204
|
const list = [
|
|
263
205
|
// boilerplate priority
|
|
264
|
-
|
|
206
|
+
internal.boot.lifecycleHooks.get("boilerplate").getCallbacks(stage),
|
|
265
207
|
// children next
|
|
266
208
|
// ...
|
|
267
|
-
...[...
|
|
209
|
+
...[...internal.boot.lifecycleHooks.entries()]
|
|
268
210
|
.filter(([name]) => name !== "boilerplate")
|
|
269
211
|
.map(([, thing]) => thing.getCallbacks(stage)),
|
|
270
212
|
];
|
|
@@ -293,69 +235,23 @@ async function RunStageCallbacks(stage) {
|
|
|
293
235
|
await (0, helpers_1.eachSeries)(negative.sort(([, a], [, b]) => (a > b ? helpers_1.UP : helpers_1.DOWN)), async ([callback]) => await callback());
|
|
294
236
|
});
|
|
295
237
|
internal.boot.completedLifecycleEvents.add(stage);
|
|
238
|
+
await (0, helpers_1.sleep)(helpers_1.NONE);
|
|
296
239
|
return `${Date.now() - start}ms`;
|
|
297
240
|
}
|
|
298
|
-
const PRE_CALLBACKS_START = 0;
|
|
299
|
-
// #MARK: BuildSortOrder
|
|
300
|
-
function BuildSortOrder(app) {
|
|
301
|
-
if (_1.is.empty(app.libraries)) {
|
|
302
|
-
return [];
|
|
303
|
-
}
|
|
304
|
-
const libraryMap = new Map(app.libraries.map((i) => [i.name, i]));
|
|
305
|
-
// Recursive function to check for missing dependencies at any depth
|
|
306
|
-
function checkDependencies(library) {
|
|
307
|
-
if (!_1.is.empty(library.depends)) {
|
|
308
|
-
library.depends.forEach((item) => {
|
|
309
|
-
const loaded = libraryMap.get(item.name);
|
|
310
|
-
if (!loaded) {
|
|
311
|
-
throw new helpers_1.BootstrapException(WIRING_CONTEXT, "MISSING_DEPENDENCY", `${item.name} is required by ${library.name}, but was not provided`);
|
|
312
|
-
}
|
|
313
|
-
// just "are they the same object reference?" as the test
|
|
314
|
-
// you get a warning, and the one the app asks for
|
|
315
|
-
// hopefully there is no breaking changes
|
|
316
|
-
if (loaded !== item) {
|
|
317
|
-
logger.warn({ name: BuildSortOrder }, "[%s] depends different version {%s}", library.name, item.name);
|
|
318
|
-
}
|
|
319
|
-
});
|
|
320
|
-
}
|
|
321
|
-
return library;
|
|
322
|
-
}
|
|
323
|
-
let starting = app.libraries.map((i) => checkDependencies(i));
|
|
324
|
-
const out = [];
|
|
325
|
-
while (!_1.is.empty(starting)) {
|
|
326
|
-
const next = starting.find((library) => {
|
|
327
|
-
if (_1.is.empty(library.depends)) {
|
|
328
|
-
return true;
|
|
329
|
-
}
|
|
330
|
-
return library.depends?.every((depend) => out.some((i) => i.name === depend.name));
|
|
331
|
-
});
|
|
332
|
-
if (!next) {
|
|
333
|
-
logger.fatal({ current: out.map((i) => i.name), name: BuildSortOrder });
|
|
334
|
-
throw new helpers_1.BootstrapException(WIRING_CONTEXT, "BAD_SORT", `Cannot find a next lib to load`);
|
|
335
|
-
}
|
|
336
|
-
starting = starting.filter((i) => next.name !== i.name);
|
|
337
|
-
out.push(next);
|
|
338
|
-
}
|
|
339
|
-
const order = out.map((i) => i.name);
|
|
340
|
-
logger.trace({ name: BuildSortOrder, order }, ``);
|
|
341
|
-
return out;
|
|
342
|
-
}
|
|
343
|
-
let startup;
|
|
344
241
|
// #MARK: Bootstrap
|
|
345
|
-
async function Bootstrap(application, options = {}) {
|
|
346
|
-
if (internal) {
|
|
347
|
-
throw new helpers_1.BootstrapException(WIRING_CONTEXT, "NO_DUAL_BOOT", "Another application is already active, please terminate");
|
|
348
|
-
}
|
|
349
|
-
internal = new _1.InternalDefinition();
|
|
242
|
+
async function Bootstrap(application, options = {}, internal) {
|
|
350
243
|
// const
|
|
351
244
|
internal.boot = {
|
|
352
245
|
application,
|
|
353
246
|
completedLifecycleEvents: new Set(),
|
|
247
|
+
lifecycleHooks: new Map(),
|
|
248
|
+
loadedModules: new Map(),
|
|
249
|
+
moduleMappings: new Map(),
|
|
354
250
|
options,
|
|
355
251
|
phase: "bootstrap",
|
|
252
|
+
startup: new Date(),
|
|
356
253
|
};
|
|
357
254
|
process.title = application.name;
|
|
358
|
-
startup = new Date();
|
|
359
255
|
try {
|
|
360
256
|
const STATS = {};
|
|
361
257
|
const CONSTRUCT = {};
|
|
@@ -364,7 +260,7 @@ async function Bootstrap(application, options = {}) {
|
|
|
364
260
|
// otherwise it'd only be there for everyone else
|
|
365
261
|
const api = {};
|
|
366
262
|
internal.boilerplate = api;
|
|
367
|
-
|
|
263
|
+
internal.boot.loadedModules.set("boilerplate", api);
|
|
368
264
|
STATS.Construct = CONSTRUCT;
|
|
369
265
|
// * Recreate base eventemitter
|
|
370
266
|
internal.utils.event = new events_1.EventEmitter();
|
|
@@ -373,11 +269,12 @@ async function Bootstrap(application, options = {}) {
|
|
|
373
269
|
exports.LIB_BOILERPLATE = CreateBoilerplate();
|
|
374
270
|
// * Wire it
|
|
375
271
|
let start = Date.now();
|
|
376
|
-
await exports.LIB_BOILERPLATE[helpers_1.WIRE_PROJECT](internal);
|
|
272
|
+
await exports.LIB_BOILERPLATE[helpers_1.WIRE_PROJECT](internal, WireService, undefined);
|
|
377
273
|
CONSTRUCT.boilerplate = `${Date.now() - start}ms`;
|
|
378
274
|
// ~ configuration
|
|
379
275
|
api.configuration?.[configuration_extension_1.LOAD_PROJECT](exports.LIB_BOILERPLATE.name, exports.LIB_BOILERPLATE.configuration);
|
|
380
|
-
logger = api.logger.context(WIRING_CONTEXT);
|
|
276
|
+
const logger = api.logger.context(helpers_1.WIRING_CONTEXT);
|
|
277
|
+
application.logger = logger;
|
|
381
278
|
logger.info({ name: Bootstrap }, `[boilerplate] wiring complete`);
|
|
382
279
|
// * Wire in various shutdown events
|
|
383
280
|
processEvents.forEach((callback, event) => {
|
|
@@ -386,17 +283,22 @@ async function Bootstrap(application, options = {}) {
|
|
|
386
283
|
});
|
|
387
284
|
// * Add in libraries
|
|
388
285
|
application.libraries ??= [];
|
|
389
|
-
const order = BuildSortOrder(application);
|
|
286
|
+
const order = (0, helpers_1.BuildSortOrder)(application, logger);
|
|
390
287
|
await (0, helpers_1.eachSeries)(order, async (i) => {
|
|
391
288
|
start = Date.now();
|
|
392
289
|
logger.info({ name: Bootstrap }, `[%s] init project`, i.name);
|
|
393
|
-
await i[helpers_1.WIRE_PROJECT](internal);
|
|
290
|
+
await i[helpers_1.WIRE_PROJECT](internal, WireService, logger);
|
|
394
291
|
CONSTRUCT[i.name] = `${Date.now() - start}ms`;
|
|
395
292
|
});
|
|
293
|
+
if (!_1.is.undefined(options?.appendLibrary)) {
|
|
294
|
+
start = Date.now();
|
|
295
|
+
await options.appendLibrary[helpers_1.WIRE_PROJECT](internal, WireService, logger);
|
|
296
|
+
CONSTRUCT[options.appendLibrary.name] = `${Date.now() - start}ms`;
|
|
297
|
+
}
|
|
396
298
|
logger.info({ name: Bootstrap }, `init application`);
|
|
397
299
|
// * Finally the application
|
|
398
300
|
start = Date.now();
|
|
399
|
-
await application[helpers_1.WIRE_PROJECT](internal);
|
|
301
|
+
await application[helpers_1.WIRE_PROJECT](internal, WireService, logger);
|
|
400
302
|
CONSTRUCT[application.name] = `${Date.now() - start}ms`;
|
|
401
303
|
// ? Configuration values provided bootstrap take priority over module level
|
|
402
304
|
if (!_1.is.empty(options?.configuration)) {
|
|
@@ -404,19 +306,19 @@ async function Bootstrap(application, options = {}) {
|
|
|
404
306
|
}
|
|
405
307
|
// - Kick off lifecycle
|
|
406
308
|
logger.debug({ name: Bootstrap }, `[PreInit] running lifecycle callbacks`);
|
|
407
|
-
STATS.PreInit = await RunStageCallbacks("PreInit");
|
|
309
|
+
STATS.PreInit = await RunStageCallbacks("PreInit", internal);
|
|
408
310
|
// - Pull in user configurations
|
|
409
311
|
logger.debug({ name: Bootstrap }, "loading configuration");
|
|
410
312
|
STATS.Configure =
|
|
411
|
-
await BOILERPLATE()?.configuration?.[configuration_extension_1.INITIALIZE](application);
|
|
313
|
+
await BOILERPLATE(internal)?.configuration?.[configuration_extension_1.INITIALIZE](application);
|
|
412
314
|
// - Run through other events in order
|
|
413
315
|
logger.debug({ name: Bootstrap }, `[PostConfig] running lifecycle callbacks`);
|
|
414
|
-
STATS.PostConfig = await RunStageCallbacks("PostConfig");
|
|
316
|
+
STATS.PostConfig = await RunStageCallbacks("PostConfig", internal);
|
|
415
317
|
logger.debug({ name: Bootstrap }, `[Bootstrap] running lifecycle callbacks`);
|
|
416
|
-
STATS.Bootstrap = await RunStageCallbacks("Bootstrap");
|
|
318
|
+
STATS.Bootstrap = await RunStageCallbacks("Bootstrap", internal);
|
|
417
319
|
logger.debug({ name: Bootstrap }, `[Ready] running lifecycle callbacks`);
|
|
418
|
-
STATS.Ready = await RunStageCallbacks("Ready");
|
|
419
|
-
STATS.Total = `${Date.now() - startup.getTime()}ms`;
|
|
320
|
+
STATS.Ready = await RunStageCallbacks("Ready", internal);
|
|
321
|
+
STATS.Total = `${Date.now() - internal.boot.startup.getTime()}ms`;
|
|
420
322
|
// * App is ready!
|
|
421
323
|
logger.info(options?.showExtraBootStats
|
|
422
324
|
? { ...STATS, name: Bootstrap }
|
|
@@ -432,7 +334,7 @@ async function Bootstrap(application, options = {}) {
|
|
|
432
334
|
}
|
|
433
335
|
}
|
|
434
336
|
// #MARK: Teardown
|
|
435
|
-
async function Teardown() {
|
|
337
|
+
async function Teardown(internal, logger) {
|
|
436
338
|
if (!internal) {
|
|
437
339
|
return;
|
|
438
340
|
}
|
|
@@ -442,66 +344,23 @@ async function Teardown() {
|
|
|
442
344
|
try {
|
|
443
345
|
// * PreShutdown
|
|
444
346
|
logger.debug({ name: Teardown }, `[PreShutdown] running lifecycle callbacks`);
|
|
445
|
-
await RunStageCallbacks("PreShutdown");
|
|
347
|
+
await RunStageCallbacks("PreShutdown", internal);
|
|
446
348
|
// * Formally shutting down
|
|
447
349
|
logger.info({ name: Teardown }, `tearing down application`);
|
|
448
350
|
logger.debug({ name: Teardown }, `[ShutdownStart] running lifecycle callbacks`);
|
|
449
|
-
await RunStageCallbacks("ShutdownStart");
|
|
351
|
+
await RunStageCallbacks("ShutdownStart", internal);
|
|
450
352
|
logger.debug({ name: Teardown }, `[ShutdownComplete] running lifecycle callbacks`);
|
|
451
|
-
await RunStageCallbacks("ShutdownComplete");
|
|
353
|
+
await RunStageCallbacks("ShutdownComplete", internal);
|
|
452
354
|
}
|
|
453
355
|
catch (error) {
|
|
454
356
|
// ! oof
|
|
455
357
|
logger.error({ error, name: Teardown }, "error occurred during teardown, some lifecycle events may be incomplete");
|
|
456
358
|
}
|
|
457
359
|
// * Final resource cleanup, attempt to reset everything possible
|
|
458
|
-
logger.info({
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
function Reset() {
|
|
360
|
+
logger.info({
|
|
361
|
+
name: Teardown,
|
|
362
|
+
started_at: internal.utils.relativeDate(internal.boot.startup),
|
|
363
|
+
}, `application terminated`);
|
|
463
364
|
processEvents.forEach((callback, event) => process.removeListener(event, callback));
|
|
464
|
-
internal?.utils?.event?.removeAllListeners?.();
|
|
465
|
-
exports.MODULE_MAPPINGS = new Map();
|
|
466
|
-
exports.LOADED_MODULES = new Map();
|
|
467
|
-
exports.LOADED_LIFECYCLES = new Map();
|
|
468
|
-
exports.REVERSE_MODULE_MAPPING = new Map();
|
|
469
|
-
internal = undefined;
|
|
470
|
-
logger = undefined;
|
|
471
|
-
}
|
|
472
|
-
exports.Reset = Reset;
|
|
473
|
-
// # Lifecycle
|
|
474
|
-
function CreateChildLifecycle(internal) {
|
|
475
|
-
const childCallbacks = {};
|
|
476
|
-
const [
|
|
477
|
-
// ! This list must be sorted!
|
|
478
|
-
onPreInit, onPostConfig, onBootstrap, onReady, onPreShutdown, onShutdownStart, onShutdownComplete,] = helpers_1.LIFECYCLE_STAGES.map((stage) => {
|
|
479
|
-
childCallbacks[stage] = [];
|
|
480
|
-
return (callback, priority) => {
|
|
481
|
-
if (internal.boot.completedLifecycleEvents.has(stage)) {
|
|
482
|
-
// this is makes "earliest run time" logic way easier to implement
|
|
483
|
-
// intended mode of operation
|
|
484
|
-
if (["PreInit", "PostConfig", "Bootstrap", "Ready"].includes(stage)) {
|
|
485
|
-
setImmediate(async () => await callback());
|
|
486
|
-
return;
|
|
487
|
-
}
|
|
488
|
-
// What does this mean in reality?
|
|
489
|
-
// Probably a broken unit test, I really don't know what workflow would cause this
|
|
490
|
-
logger.fatal({ name: CreateChildLifecycle }, `on${stage} late attach, cannot attach callback`);
|
|
491
|
-
return;
|
|
492
|
-
}
|
|
493
|
-
childCallbacks[stage].push([callback, priority]);
|
|
494
|
-
};
|
|
495
|
-
});
|
|
496
|
-
return {
|
|
497
|
-
getCallbacks: (stage) => childCallbacks[stage],
|
|
498
|
-
onBootstrap,
|
|
499
|
-
onPostConfig,
|
|
500
|
-
onPreInit,
|
|
501
|
-
onPreShutdown,
|
|
502
|
-
onReady,
|
|
503
|
-
onShutdownComplete,
|
|
504
|
-
onShutdownStart,
|
|
505
|
-
};
|
|
506
365
|
}
|
|
507
366
|
//# sourceMappingURL=wiring.extension.js.map
|
|
@@ -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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"}
|
|
@@ -157,6 +157,16 @@ export type PartialConfiguration = Partial<{
|
|
|
157
157
|
[ModuleName in keyof ModuleConfigs]: Partial<ConfigTypes<ModuleConfigs[ModuleName]>>;
|
|
158
158
|
}>;
|
|
159
159
|
export type BootstrapOptions = {
|
|
160
|
+
/**
|
|
161
|
+
* An extra library to load after the application is constructed.
|
|
162
|
+
* Can be used to provide testing specific logic
|
|
163
|
+
*/
|
|
164
|
+
appendLibrary?: TLibrary;
|
|
165
|
+
/**
|
|
166
|
+
* An services to be appended to the application.
|
|
167
|
+
* Wired as if they were declared with the application, but doesn't come with any related type support
|
|
168
|
+
*/
|
|
169
|
+
appendService?: ServiceMap;
|
|
160
170
|
/**
|
|
161
171
|
* default: true
|
|
162
172
|
*/
|
|
@@ -188,12 +198,20 @@ type Wire = {
|
|
|
188
198
|
* - initializes lifecycle
|
|
189
199
|
* - attaches event emitters
|
|
190
200
|
*/
|
|
191
|
-
[WIRE_PROJECT]: (internal: InternalDefinition) => Promise<TChildLifecycle>;
|
|
201
|
+
[WIRE_PROJECT]: (internal: InternalDefinition, WireService: (project: string, service: string, definition: ServiceFunction, lifecycle: TLifecycleBase, internal: InternalDefinition) => Promise<TServiceReturn<object>>, logger: ILogger) => Promise<TChildLifecycle>;
|
|
192
202
|
};
|
|
193
203
|
export type LibraryDefinition<S extends ServiceMap, C extends OptionalModuleConfiguration> = LibraryConfigurationOptions<S, C> & Wire;
|
|
194
204
|
export type ApplicationDefinition<S extends ServiceMap, C extends OptionalModuleConfiguration> = ApplicationConfigurationOptions<S, C> & Wire & {
|
|
205
|
+
logger: ILogger;
|
|
195
206
|
booted: boolean;
|
|
196
207
|
bootstrap: (options?: BootstrapOptions) => Promise<void>;
|
|
197
208
|
teardown: () => Promise<void>;
|
|
198
209
|
};
|
|
210
|
+
type TLibrary = LibraryDefinition<ServiceMap, OptionalModuleConfiguration>;
|
|
211
|
+
export declare function BuildSortOrder<S extends ServiceMap, C extends OptionalModuleConfiguration>(app: ApplicationDefinition<S, C>, logger: ILogger): TLibrary[];
|
|
212
|
+
export declare const COERCE_CONTEXT: (context: string) => TContext;
|
|
213
|
+
export declare const WIRING_CONTEXT: TContext;
|
|
214
|
+
export declare function ValidateLibrary<S extends ServiceMap>(project: string, serviceList: S): void | never;
|
|
215
|
+
export declare function WireOrder<T extends string>(priority: T[], list: T[]): T[];
|
|
216
|
+
export declare function CreateLibrary<S extends ServiceMap, C extends OptionalModuleConfiguration>({ name: libraryName, configuration, priorityInit, services, depends, }: LibraryConfigurationOptions<S, C>): LibraryDefinition<S, C>;
|
|
199
217
|
export {};
|
|
@@ -1,5 +1,107 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.WIRE_PROJECT = void 0;
|
|
3
|
+
exports.CreateLibrary = exports.WireOrder = exports.ValidateLibrary = exports.WIRING_CONTEXT = exports.COERCE_CONTEXT = exports.BuildSortOrder = exports.WIRE_PROJECT = void 0;
|
|
4
|
+
const __1 = require("..");
|
|
5
|
+
const lifecycle_extension_1 = require("../extensions/lifecycle.extension");
|
|
4
6
|
exports.WIRE_PROJECT = Symbol.for("wire-project");
|
|
7
|
+
function BuildSortOrder(app, logger) {
|
|
8
|
+
if (__1.is.empty(app.libraries)) {
|
|
9
|
+
return [];
|
|
10
|
+
}
|
|
11
|
+
const libraryMap = new Map(app.libraries.map((i) => [i.name, i]));
|
|
12
|
+
// Recursive function to check for missing dependencies at any depth
|
|
13
|
+
function checkDependencies(library) {
|
|
14
|
+
if (!__1.is.empty(library.depends)) {
|
|
15
|
+
library.depends.forEach((item) => {
|
|
16
|
+
const loaded = libraryMap.get(item.name);
|
|
17
|
+
if (!loaded) {
|
|
18
|
+
throw new __1.BootstrapException(exports.WIRING_CONTEXT, "MISSING_DEPENDENCY", `${item.name} is required by ${library.name}, but was not provided`);
|
|
19
|
+
}
|
|
20
|
+
// just "are they the same object reference?" as the test
|
|
21
|
+
// you get a warning, and the one the app asks for
|
|
22
|
+
// hopefully there is no breaking changes
|
|
23
|
+
if (loaded !== item) {
|
|
24
|
+
logger.warn({ name: BuildSortOrder }, "[%s] depends different version {%s}", library.name, item.name);
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
return library;
|
|
29
|
+
}
|
|
30
|
+
let starting = app.libraries.map((i) => checkDependencies(i));
|
|
31
|
+
const out = [];
|
|
32
|
+
while (!__1.is.empty(starting)) {
|
|
33
|
+
const next = starting.find((library) => {
|
|
34
|
+
if (__1.is.empty(library.depends)) {
|
|
35
|
+
return true;
|
|
36
|
+
}
|
|
37
|
+
return library.depends?.every((depend) => out.some((i) => i.name === depend.name));
|
|
38
|
+
});
|
|
39
|
+
if (!next) {
|
|
40
|
+
logger.fatal({ current: out.map((i) => i.name), name: BuildSortOrder });
|
|
41
|
+
throw new __1.BootstrapException(exports.WIRING_CONTEXT, "BAD_SORT", `Cannot find a next lib to load`);
|
|
42
|
+
}
|
|
43
|
+
starting = starting.filter((i) => next.name !== i.name);
|
|
44
|
+
out.push(next);
|
|
45
|
+
}
|
|
46
|
+
const order = out.map((i) => i.name);
|
|
47
|
+
logger.trace({ name: BuildSortOrder, order }, ``);
|
|
48
|
+
return out;
|
|
49
|
+
}
|
|
50
|
+
exports.BuildSortOrder = BuildSortOrder;
|
|
51
|
+
const COERCE_CONTEXT = (context) => context;
|
|
52
|
+
exports.COERCE_CONTEXT = COERCE_CONTEXT;
|
|
53
|
+
exports.WIRING_CONTEXT = (0, exports.COERCE_CONTEXT)("boilerplate:wiring");
|
|
54
|
+
function ValidateLibrary(project, serviceList) {
|
|
55
|
+
if (__1.is.empty(project)) {
|
|
56
|
+
throw new __1.BootstrapException((0, exports.COERCE_CONTEXT)("CreateLibrary"), "MISSING_LIBRARY_NAME", "Library name is required");
|
|
57
|
+
}
|
|
58
|
+
const services = Object.entries(serviceList);
|
|
59
|
+
// Find the first invalid service
|
|
60
|
+
const invalidService = services.find(([, definition]) => typeof definition !== "function");
|
|
61
|
+
if (invalidService) {
|
|
62
|
+
const [invalidServiceName, service] = invalidService;
|
|
63
|
+
throw new __1.BootstrapException((0, exports.COERCE_CONTEXT)("CreateLibrary"), "INVALID_SERVICE_DEFINITION", `Invalid service definition for '${invalidServiceName}' in library '${project}' (${typeof service}})`);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
exports.ValidateLibrary = ValidateLibrary;
|
|
67
|
+
function WireOrder(priority, list) {
|
|
68
|
+
const out = [...(priority || [])];
|
|
69
|
+
if (!__1.is.empty(priority)) {
|
|
70
|
+
const check = __1.is.unique(priority);
|
|
71
|
+
if (check.length !== out.length) {
|
|
72
|
+
throw new __1.BootstrapException(exports.WIRING_CONTEXT, "DOUBLE_PRIORITY", "There are duplicate items in the priority load list");
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return [...out, ...list.filter((i) => !out.includes(i))];
|
|
76
|
+
}
|
|
77
|
+
exports.WireOrder = WireOrder;
|
|
78
|
+
function CreateLibrary({ name: libraryName, configuration = {}, priorityInit, services, depends, }) {
|
|
79
|
+
ValidateLibrary(libraryName, services);
|
|
80
|
+
const serviceApis = {};
|
|
81
|
+
const library = {
|
|
82
|
+
[exports.WIRE_PROJECT]: async (internal, WireService, logger) => {
|
|
83
|
+
const lifecycle = (0, lifecycle_extension_1.CreateChildLifecycle)(internal, logger);
|
|
84
|
+
// This one hasn't been loaded yet, generate an object with all the correct properties
|
|
85
|
+
internal.boot.lifecycleHooks.set(libraryName, lifecycle);
|
|
86
|
+
// not defined for boilerplate (chicken & egg)
|
|
87
|
+
// manually added inside the bootstrap process
|
|
88
|
+
const config = internal?.boilerplate.configuration;
|
|
89
|
+
config?.[__1.LOAD_PROJECT](libraryName, configuration);
|
|
90
|
+
await (0, __1.eachSeries)(WireOrder(priorityInit, Object.keys(services)), async (service) => {
|
|
91
|
+
serviceApis[service] = await WireService(libraryName, service, services[service], lifecycle, internal);
|
|
92
|
+
});
|
|
93
|
+
// mental note: people should probably do all their lifecycle attachments at the base level function
|
|
94
|
+
// otherwise, it'll happen after this wire() call, and go into a black hole (worst case) or fatal error ("best" case)
|
|
95
|
+
return lifecycle;
|
|
96
|
+
},
|
|
97
|
+
configuration,
|
|
98
|
+
depends,
|
|
99
|
+
name: libraryName,
|
|
100
|
+
priorityInit,
|
|
101
|
+
serviceApis,
|
|
102
|
+
services,
|
|
103
|
+
};
|
|
104
|
+
return library;
|
|
105
|
+
}
|
|
106
|
+
exports.CreateLibrary = CreateLibrary;
|
|
5
107
|
//# sourceMappingURL=wiring.helper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wiring.helper.js","sourceRoot":"","sources":["../../src/helpers/wiring.helper.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"wiring.helper.js","sourceRoot":"","sources":["../../src/helpers/wiring.helper.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"repository": {
|
|
4
4
|
"url": "git+https://github.com/Digital-Alchemy-TS/core"
|
|
5
5
|
},
|
|
6
|
-
"version": "0.3.
|
|
6
|
+
"version": "0.3.13",
|
|
7
7
|
"author": {
|
|
8
8
|
"url": "https://github.com/zoe-codez",
|
|
9
9
|
"name": "Zoe Codez"
|
|
@@ -73,6 +73,11 @@
|
|
|
73
73
|
"typescript": "^5.4.3"
|
|
74
74
|
},
|
|
75
75
|
"jest": {
|
|
76
|
+
"collectCoverage": true,
|
|
77
|
+
"coverageReporters": [
|
|
78
|
+
"text",
|
|
79
|
+
"cobertura"
|
|
80
|
+
],
|
|
76
81
|
"preset": "ts-jest",
|
|
77
82
|
"testEnvironment": "node",
|
|
78
83
|
"moduleFileExtensions": [
|