@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.
@@ -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":"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"}
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, LibraryConfigurationOptions, LibraryDefinition, OptionalModuleConfiguration, ServiceFunction, ServiceMap, StringConfig, TLoadableChildLifecycle, TModuleMappings, TResolvedModuleMappings } from "../helpers";
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 function CreateLibrary<S extends ServiceMap, C extends OptionalModuleConfiguration>({ name: libraryName, configuration, priorityInit, services, depends, }: LibraryConfigurationOptions<S, C>): LibraryDefinition<S, C>;
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.Reset = exports.CreateApplication = exports.CreateLibrary = exports.LIB_BOILERPLATE = exports.LOADED_LIFECYCLES = exports.REVERSE_MODULE_MAPPING = exports.LOADED_MODULES = exports.MODULE_MAPPINGS = void 0;
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
- return CreateLibrary({
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
- // #MARK: WireOrder
133
- function WireOrder(priority, list) {
134
- const out = [...(priority || [])];
135
- if (!_1.is.empty(priority)) {
136
- const check = _1.is.unique(priority);
137
- if (check.length !== out.length) {
138
- throw new helpers_1.BootstrapException(WIRING_CONTEXT, "DOUBLE_PRIORITY", "There are duplicate items in the priority load list");
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: CreateLibrary
144
- function CreateLibrary({ name: libraryName, configuration = {}, priorityInit, services, depends, }) {
145
- ValidateLibrary(libraryName, services);
146
- const serviceApis = {};
147
- const library = {
148
- [helpers_1.WIRE_PROJECT]: async (internal) => {
149
- const lifecycle = CreateChildLifecycle(internal);
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
- configuration,
164
- depends,
165
- name: libraryName,
166
- priorityInit,
167
- serviceApis,
168
- services,
169
- };
170
- return library;
171
- }
172
- exports.CreateLibrary = CreateLibrary;
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
- exports.LOADED_LIFECYCLES.set(name, lifecycle);
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
- await Bootstrap(application, options);
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
- Reset();
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 = exports.MODULE_MAPPINGS.get(project) ?? {};
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
- exports.MODULE_MAPPINGS.set(project, mappings);
226
- exports.REVERSE_MODULE_MAPPING.set(definition, [project, service]);
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 = exports.LOADED_MODULES.get(project) ?? {};
232
- exports.LOADED_MODULES.set(project, loaded);
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([...exports.LOADED_MODULES.keys()].map((project) => [
177
+ const inject = Object.fromEntries([...internal.boot.loadedModules.keys()].map((project) => [
236
178
  project,
237
- exports.LOADED_MODULES.get(project),
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
- exports.LOADED_LIFECYCLES.get("boilerplate").getCallbacks(stage),
206
+ internal.boot.lifecycleHooks.get("boilerplate").getCallbacks(stage),
265
207
  // children next
266
208
  // ...
267
- ...[...exports.LOADED_LIFECYCLES.entries()]
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
- exports.LOADED_MODULES.set("boilerplate", api);
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({ name: Teardown, started_at: internal.utils.relativeDate(startup) }, `application terminated`);
459
- Reset();
460
- }
461
- // #MARK: Reset
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":";;;AA6Sa,QAAA,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC"}
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.11",
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": [