@digital-alchemy/core 0.3.11 → 0.3.12

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,61 +69,50 @@ 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
  });
189
118
  return lifecycle;
@@ -191,25 +120,33 @@ function CreateApplication({ name, services, configurationLoaders, libraries = [
191
120
  booted: false,
192
121
  bootstrap: async (options) => {
193
122
  if (application.booted) {
194
- throw new helpers_1.BootstrapException(WIRING_CONTEXT, "DOUBLE_BOOT", "Application is already booted! Cannot bootstrap again");
123
+ throw new helpers_1.BootstrapException(helpers_1.WIRING_CONTEXT, "DOUBLE_BOOT", "Application is already booted! Cannot bootstrap again");
124
+ }
125
+ if (internal) {
126
+ throw new helpers_1.BootstrapException(helpers_1.WIRING_CONTEXT, "NO_DUAL_BOOT", "Another application is already active, please terminate");
195
127
  }
196
- await Bootstrap(application, options);
128
+ internal = new _1.InternalDefinition();
129
+ await Bootstrap(application, options, internal);
197
130
  application.booted = true;
131
+ RUNNING_APPLICATIONS.set(name, application);
198
132
  },
199
133
  configuration,
200
134
  configurationLoaders,
201
135
  libraries,
136
+ logger: undefined,
202
137
  name,
203
138
  priorityInit,
204
139
  serviceApis,
205
140
  services,
206
141
  teardown: async () => {
207
142
  if (!application.booted) {
208
- Reset();
143
+ processEvents.forEach((callback, event) => process.removeListener(event, callback));
209
144
  return;
210
145
  }
211
- await Teardown();
146
+ await Teardown(internal, application.logger);
147
+ internal?.utils?.event?.removeAllListeners?.();
212
148
  application.booted = false;
149
+ internal = undefined;
213
150
  },
214
151
  };
215
152
  return application;
@@ -217,24 +154,23 @@ function CreateApplication({ name, services, configurationLoaders, libraries = [
217
154
  exports.CreateApplication = CreateApplication;
218
155
  // #MARK: WireService
219
156
  async function WireService(project, service, definition, lifecycle, internal) {
220
- const mappings = exports.MODULE_MAPPINGS.get(project) ?? {};
157
+ const mappings = internal.boot.moduleMappings.get(project) ?? {};
221
158
  if (!_1.is.undefined(mappings[service])) {
222
- throw new helpers_1.BootstrapException(WIRING_CONTEXT, "DUPLICATE_SERVICE_NAME", `${service} is already defined for ${project}`);
159
+ throw new helpers_1.BootstrapException(helpers_1.WIRING_CONTEXT, "DUPLICATE_SERVICE_NAME", `${service} is already defined for ${project}`);
223
160
  }
224
161
  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}`);
162
+ internal.boot.moduleMappings.set(project, mappings);
163
+ const context = (0, helpers_1.COERCE_CONTEXT)(`${project}:${service}`);
228
164
  // logger gets defined first, so this really is only for the start of the start of bootstrapping
229
- const boilerplate = BOILERPLATE();
165
+ const boilerplate = BOILERPLATE(internal);
230
166
  const logger = boilerplate?.logger?.context(context);
231
- const loaded = exports.LOADED_MODULES.get(project) ?? {};
232
- exports.LOADED_MODULES.set(project, loaded);
167
+ const loaded = internal.boot.loadedModules.get(project) ?? {};
168
+ internal.boot.loadedModules.set(project, loaded);
233
169
  try {
234
170
  logger?.trace({ name: WireService }, `initializing`);
235
- const inject = Object.fromEntries([...exports.LOADED_MODULES.keys()].map((project) => [
171
+ const inject = Object.fromEntries([...internal.boot.loadedModules.keys()].map((project) => [
236
172
  project,
237
- exports.LOADED_MODULES.get(project),
173
+ internal.boot.loadedModules.get(project),
238
174
  ]));
239
175
  loaded[service] = (await definition({
240
176
  ...inject,
@@ -257,14 +193,14 @@ async function WireService(project, service, definition, lifecycle, internal) {
257
193
  }
258
194
  }
259
195
  // #MARK: RunStageCallbacks
260
- async function RunStageCallbacks(stage) {
196
+ async function RunStageCallbacks(stage, internal) {
261
197
  const start = Date.now();
262
198
  const list = [
263
199
  // boilerplate priority
264
- exports.LOADED_LIFECYCLES.get("boilerplate").getCallbacks(stage),
200
+ internal.boot.lifecycleHooks.get("boilerplate").getCallbacks(stage),
265
201
  // children next
266
202
  // ...
267
- ...[...exports.LOADED_LIFECYCLES.entries()]
203
+ ...[...internal.boot.lifecycleHooks.entries()]
268
204
  .filter(([name]) => name !== "boilerplate")
269
205
  .map(([, thing]) => thing.getCallbacks(stage)),
270
206
  ];
@@ -295,67 +231,20 @@ async function RunStageCallbacks(stage) {
295
231
  internal.boot.completedLifecycleEvents.add(stage);
296
232
  return `${Date.now() - start}ms`;
297
233
  }
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
234
  // #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();
235
+ async function Bootstrap(application, options = {}, internal) {
350
236
  // const
351
237
  internal.boot = {
352
238
  application,
353
239
  completedLifecycleEvents: new Set(),
240
+ lifecycleHooks: new Map(),
241
+ loadedModules: new Map(),
242
+ moduleMappings: new Map(),
354
243
  options,
355
244
  phase: "bootstrap",
245
+ startup: new Date(),
356
246
  };
357
247
  process.title = application.name;
358
- startup = new Date();
359
248
  try {
360
249
  const STATS = {};
361
250
  const CONSTRUCT = {};
@@ -364,7 +253,7 @@ async function Bootstrap(application, options = {}) {
364
253
  // otherwise it'd only be there for everyone else
365
254
  const api = {};
366
255
  internal.boilerplate = api;
367
- exports.LOADED_MODULES.set("boilerplate", api);
256
+ internal.boot.loadedModules.set("boilerplate", api);
368
257
  STATS.Construct = CONSTRUCT;
369
258
  // * Recreate base eventemitter
370
259
  internal.utils.event = new events_1.EventEmitter();
@@ -373,11 +262,12 @@ async function Bootstrap(application, options = {}) {
373
262
  exports.LIB_BOILERPLATE = CreateBoilerplate();
374
263
  // * Wire it
375
264
  let start = Date.now();
376
- await exports.LIB_BOILERPLATE[helpers_1.WIRE_PROJECT](internal);
265
+ await exports.LIB_BOILERPLATE[helpers_1.WIRE_PROJECT](internal, WireService, undefined);
377
266
  CONSTRUCT.boilerplate = `${Date.now() - start}ms`;
378
267
  // ~ configuration
379
268
  api.configuration?.[configuration_extension_1.LOAD_PROJECT](exports.LIB_BOILERPLATE.name, exports.LIB_BOILERPLATE.configuration);
380
- logger = api.logger.context(WIRING_CONTEXT);
269
+ const logger = api.logger.context(helpers_1.WIRING_CONTEXT);
270
+ application.logger = logger;
381
271
  logger.info({ name: Bootstrap }, `[boilerplate] wiring complete`);
382
272
  // * Wire in various shutdown events
383
273
  processEvents.forEach((callback, event) => {
@@ -386,17 +276,17 @@ async function Bootstrap(application, options = {}) {
386
276
  });
387
277
  // * Add in libraries
388
278
  application.libraries ??= [];
389
- const order = BuildSortOrder(application);
279
+ const order = (0, helpers_1.BuildSortOrder)(application, logger);
390
280
  await (0, helpers_1.eachSeries)(order, async (i) => {
391
281
  start = Date.now();
392
282
  logger.info({ name: Bootstrap }, `[%s] init project`, i.name);
393
- await i[helpers_1.WIRE_PROJECT](internal);
283
+ await i[helpers_1.WIRE_PROJECT](internal, WireService, logger);
394
284
  CONSTRUCT[i.name] = `${Date.now() - start}ms`;
395
285
  });
396
286
  logger.info({ name: Bootstrap }, `init application`);
397
287
  // * Finally the application
398
288
  start = Date.now();
399
- await application[helpers_1.WIRE_PROJECT](internal);
289
+ await application[helpers_1.WIRE_PROJECT](internal, WireService, logger);
400
290
  CONSTRUCT[application.name] = `${Date.now() - start}ms`;
401
291
  // ? Configuration values provided bootstrap take priority over module level
402
292
  if (!_1.is.empty(options?.configuration)) {
@@ -404,19 +294,19 @@ async function Bootstrap(application, options = {}) {
404
294
  }
405
295
  // - Kick off lifecycle
406
296
  logger.debug({ name: Bootstrap }, `[PreInit] running lifecycle callbacks`);
407
- STATS.PreInit = await RunStageCallbacks("PreInit");
297
+ STATS.PreInit = await RunStageCallbacks("PreInit", internal);
408
298
  // - Pull in user configurations
409
299
  logger.debug({ name: Bootstrap }, "loading configuration");
410
300
  STATS.Configure =
411
- await BOILERPLATE()?.configuration?.[configuration_extension_1.INITIALIZE](application);
301
+ await BOILERPLATE(internal)?.configuration?.[configuration_extension_1.INITIALIZE](application);
412
302
  // - Run through other events in order
413
303
  logger.debug({ name: Bootstrap }, `[PostConfig] running lifecycle callbacks`);
414
- STATS.PostConfig = await RunStageCallbacks("PostConfig");
304
+ STATS.PostConfig = await RunStageCallbacks("PostConfig", internal);
415
305
  logger.debug({ name: Bootstrap }, `[Bootstrap] running lifecycle callbacks`);
416
- STATS.Bootstrap = await RunStageCallbacks("Bootstrap");
306
+ STATS.Bootstrap = await RunStageCallbacks("Bootstrap", internal);
417
307
  logger.debug({ name: Bootstrap }, `[Ready] running lifecycle callbacks`);
418
- STATS.Ready = await RunStageCallbacks("Ready");
419
- STATS.Total = `${Date.now() - startup.getTime()}ms`;
308
+ STATS.Ready = await RunStageCallbacks("Ready", internal);
309
+ STATS.Total = `${Date.now() - internal.boot.startup.getTime()}ms`;
420
310
  // * App is ready!
421
311
  logger.info(options?.showExtraBootStats
422
312
  ? { ...STATS, name: Bootstrap }
@@ -432,7 +322,7 @@ async function Bootstrap(application, options = {}) {
432
322
  }
433
323
  }
434
324
  // #MARK: Teardown
435
- async function Teardown() {
325
+ async function Teardown(internal, logger) {
436
326
  if (!internal) {
437
327
  return;
438
328
  }
@@ -442,66 +332,23 @@ async function Teardown() {
442
332
  try {
443
333
  // * PreShutdown
444
334
  logger.debug({ name: Teardown }, `[PreShutdown] running lifecycle callbacks`);
445
- await RunStageCallbacks("PreShutdown");
335
+ await RunStageCallbacks("PreShutdown", internal);
446
336
  // * Formally shutting down
447
337
  logger.info({ name: Teardown }, `tearing down application`);
448
338
  logger.debug({ name: Teardown }, `[ShutdownStart] running lifecycle callbacks`);
449
- await RunStageCallbacks("ShutdownStart");
339
+ await RunStageCallbacks("ShutdownStart", internal);
450
340
  logger.debug({ name: Teardown }, `[ShutdownComplete] running lifecycle callbacks`);
451
- await RunStageCallbacks("ShutdownComplete");
341
+ await RunStageCallbacks("ShutdownComplete", internal);
452
342
  }
453
343
  catch (error) {
454
344
  // ! oof
455
345
  logger.error({ error, name: Teardown }, "error occurred during teardown, some lifecycle events may be incomplete");
456
346
  }
457
347
  // * 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() {
348
+ logger.info({
349
+ name: Teardown,
350
+ started_at: internal.utils.relativeDate(internal.boot.startup),
351
+ }, `application terminated`);
463
352
  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
353
  }
507
354
  //# 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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"}
@@ -188,12 +188,20 @@ type Wire = {
188
188
  * - initializes lifecycle
189
189
  * - attaches event emitters
190
190
  */
191
- [WIRE_PROJECT]: (internal: InternalDefinition) => Promise<TChildLifecycle>;
191
+ [WIRE_PROJECT]: (internal: InternalDefinition, WireService: (project: string, service: string, definition: ServiceFunction, lifecycle: TLifecycleBase, internal: InternalDefinition) => Promise<TServiceReturn<object>>, logger: ILogger) => Promise<TChildLifecycle>;
192
192
  };
193
193
  export type LibraryDefinition<S extends ServiceMap, C extends OptionalModuleConfiguration> = LibraryConfigurationOptions<S, C> & Wire;
194
194
  export type ApplicationDefinition<S extends ServiceMap, C extends OptionalModuleConfiguration> = ApplicationConfigurationOptions<S, C> & Wire & {
195
+ logger: ILogger;
195
196
  booted: boolean;
196
197
  bootstrap: (options?: BootstrapOptions) => Promise<void>;
197
198
  teardown: () => Promise<void>;
198
199
  };
200
+ type TLibrary = LibraryDefinition<ServiceMap, OptionalModuleConfiguration>;
201
+ export declare function BuildSortOrder<S extends ServiceMap, C extends OptionalModuleConfiguration>(app: ApplicationDefinition<S, C>, logger: ILogger): TLibrary[];
202
+ export declare const COERCE_CONTEXT: (context: string) => TContext;
203
+ export declare const WIRING_CONTEXT: TContext;
204
+ export declare function ValidateLibrary<S extends ServiceMap>(project: string, serviceList: S): void | never;
205
+ export declare function WireOrder<T extends string>(priority: T[], list: T[]): T[];
206
+ export declare function CreateLibrary<S extends ServiceMap, C extends OptionalModuleConfiguration>({ name: libraryName, configuration, priorityInit, services, depends, }: LibraryConfigurationOptions<S, C>): LibraryDefinition<S, C>;
199
207
  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.12",
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": [