@bluelibs/runner 1.3.0 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/README.md +223 -82
  2. package/dist/defs.d.ts +41 -7
  3. package/dist/examples/express-mongo/index.d.ts +0 -0
  4. package/dist/examples/express-mongo/index.js +3 -0
  5. package/dist/examples/express-mongo/index.js.map +1 -0
  6. package/dist/globalEvents.js +1 -0
  7. package/dist/globalEvents.js.map +1 -1
  8. package/dist/models/DependencyProcessor.d.ts +7 -5
  9. package/dist/models/DependencyProcessor.js +46 -25
  10. package/dist/models/DependencyProcessor.js.map +1 -1
  11. package/dist/models/EventManager.d.ts +1 -1
  12. package/dist/models/EventManager.js +2 -2
  13. package/dist/models/EventManager.js.map +1 -1
  14. package/dist/models/Logger.d.ts +16 -11
  15. package/dist/models/Logger.js +29 -17
  16. package/dist/models/Logger.js.map +1 -1
  17. package/dist/models/ResourceInitializer.d.ts +3 -1
  18. package/dist/models/ResourceInitializer.js +10 -10
  19. package/dist/models/ResourceInitializer.js.map +1 -1
  20. package/dist/models/Store.d.ts +4 -1
  21. package/dist/models/Store.js +17 -3
  22. package/dist/models/Store.js.map +1 -1
  23. package/dist/models/TaskRunner.d.ts +3 -1
  24. package/dist/models/TaskRunner.js +13 -7
  25. package/dist/models/TaskRunner.js.map +1 -1
  26. package/dist/run.d.ts +0 -8
  27. package/dist/run.js +11 -8
  28. package/dist/run.js.map +1 -1
  29. package/package.json +3 -2
  30. package/src/__tests__/index.ts +1 -0
  31. package/src/__tests__/models/EventManager.test.ts +21 -21
  32. package/src/__tests__/models/Logger.test.ts +50 -5
  33. package/src/__tests__/models/ResourceInitializer.test.ts +61 -25
  34. package/src/__tests__/models/Store.test.ts +4 -2
  35. package/src/__tests__/models/TaskRunner.test.ts +5 -2
  36. package/src/__tests__/run.hooks.test.ts +0 -31
  37. package/src/__tests__/run.middleware.test.ts +26 -0
  38. package/src/__tests__/typesafety.test.ts +127 -0
  39. package/src/defs.ts +57 -15
  40. package/src/examples/express-mongo/index.ts +1 -0
  41. package/src/globalEvents.ts +1 -0
  42. package/src/models/DependencyProcessor.ts +103 -47
  43. package/src/models/EventManager.ts +4 -2
  44. package/src/models/Logger.ts +39 -19
  45. package/src/models/ResourceInitializer.ts +53 -27
  46. package/src/models/Store.ts +20 -3
  47. package/src/models/TaskRunner.ts +45 -18
  48. package/src/run.ts +19 -15
@@ -1,6 +1,7 @@
1
1
  import { DependencyMapType, DependencyValuesType, IEventDefinition, IResource, ITask, IResourceWithConfig, RegisterableItems, IMiddleware } from "../defs";
2
2
  import { IDependentNode } from "../tools/findCircularDependencies";
3
3
  import { EventManager } from "./EventManager";
4
+ import { Logger } from "./Logger";
4
5
  export type ResourceStoreElementType<C = any, V = any, D extends DependencyMapType = {}> = {
5
6
  resource: IResource<C, V, D>;
6
7
  computedDependencies?: DependencyValuesType<D>;
@@ -26,13 +27,14 @@ export type EventStoreElementType = {
26
27
  export declare class Store {
27
28
  #private;
28
29
  protected readonly eventManager: EventManager;
30
+ protected readonly logger: Logger;
29
31
  root: ResourceStoreElementType;
30
32
  tasks: Map<string, TaskStoreElementType>;
31
33
  resources: Map<string, ResourceStoreElementType>;
32
34
  events: Map<string, EventStoreElementType>;
33
35
  middlewares: Map<string, MiddlewareStoreElementType>;
34
36
  overrides: Map<string, IResource | IMiddleware | ITask | IResourceWithConfig>;
35
- constructor(eventManager: EventManager);
37
+ constructor(eventManager: EventManager, logger: Logger);
36
38
  get isLocked(): boolean;
37
39
  lock(): void;
38
40
  checkLock(): void;
@@ -87,5 +89,6 @@ export declare class Store {
87
89
  */
88
90
  private prepareResource;
89
91
  private storeTask;
92
+ private middlewareAsMap;
90
93
  getDependentNodes(): IDependentNode[];
91
94
  }
@@ -11,6 +11,7 @@ const globalResources_1 = require("../globalResources");
11
11
  */
12
12
  class Store {
13
13
  eventManager;
14
+ logger;
14
15
  root;
15
16
  tasks = new Map();
16
17
  resources = new Map();
@@ -19,8 +20,9 @@ class Store {
19
20
  overrides = new Map();
20
21
  #isLocked = false;
21
22
  #isInitialized = false;
22
- constructor(eventManager) {
23
+ constructor(eventManager, logger) {
23
24
  this.eventManager = eventManager;
25
+ this.logger = logger;
24
26
  }
25
27
  get isLocked() {
26
28
  return this.#isLocked;
@@ -285,12 +287,21 @@ class Store {
285
287
  isInitialized: false,
286
288
  });
287
289
  }
290
+ middlewareAsMap(middleware) {
291
+ return middleware.reduce((acc, item) => {
292
+ acc[item.id] = item;
293
+ return acc;
294
+ }, {});
295
+ }
288
296
  getDependentNodes() {
289
297
  const depenedants = [];
290
298
  for (const task of this.tasks.values()) {
291
299
  depenedants.push({
292
300
  id: task.task.id,
293
- dependencies: task.task.dependencies,
301
+ dependencies: {
302
+ ...task.task.dependencies,
303
+ ...this.middlewareAsMap(task.task.middleware),
304
+ },
294
305
  });
295
306
  }
296
307
  for (const middleware of this.middlewares.values()) {
@@ -302,7 +313,10 @@ class Store {
302
313
  for (const resource of this.resources.values()) {
303
314
  depenedants.push({
304
315
  id: resource.resource.id,
305
- dependencies: resource.resource.dependencies || {},
316
+ dependencies: {
317
+ ...resource.resource.dependencies,
318
+ ...this.middlewareAsMap(resource.resource.middleware),
319
+ },
306
320
  });
307
321
  }
308
322
  return depenedants;
@@ -1 +1 @@
1
- {"version":3,"file":"Store.js","sourceRoot":"","sources":["../../src/models/Store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Store.js","sourceRoot":"","sources":["../../src/models/Store.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,13 @@
1
1
  import { DependencyMapType, DependencyValuesType, ITask } from "../defs";
2
2
  import { EventManager } from "./EventManager";
3
3
  import { Store } from "./Store";
4
+ import { Logger } from "./Logger";
4
5
  export declare class TaskRunner {
5
6
  protected readonly store: Store;
6
7
  protected readonly eventManager: EventManager;
8
+ protected readonly logger: Logger;
7
9
  protected readonly runnerStore: Map<string, (input: any) => Promise<any>>;
8
- constructor(store: Store, eventManager: EventManager);
10
+ constructor(store: Store, eventManager: EventManager, logger: Logger);
9
11
  /**
10
12
  * Begins the execution of an task. These are registered tasks and all sanity checks have been performed at this stage to ensure consistency of the object.
11
13
  * This function can throw only if any of the event listeners or run function throws
@@ -5,10 +5,12 @@ const globalEvents_1 = require("../globalEvents");
5
5
  class TaskRunner {
6
6
  store;
7
7
  eventManager;
8
+ logger;
8
9
  runnerStore = new Map();
9
- constructor(store, eventManager) {
10
+ constructor(store, eventManager, logger) {
10
11
  this.store = store;
11
12
  this.eventManager = eventManager;
13
+ this.logger = logger;
12
14
  }
13
15
  /**
14
16
  * Begins the execution of an task. These are registered tasks and all sanity checks have been performed at this stage to ensure consistency of the object.
@@ -28,21 +30,21 @@ class TaskRunner {
28
30
  // begin by dispatching the event of creating it.
29
31
  // then ensure the hooks are called
30
32
  // then ensure the middleware are called
31
- await this.eventManager.emit(task.events.beforeRun, { input });
33
+ await this.eventManager.emit(task.events.beforeRun, { input }, task.id);
32
34
  await this.eventManager.emit(globalEvents_1.globalEvents.tasks.beforeRun, {
33
35
  task,
34
36
  input,
35
- });
37
+ }, task.id);
36
38
  let error;
37
39
  try {
38
40
  // craft the next function starting from the first next function
39
41
  const output = await runner(input);
40
- await this.eventManager.emit(task.events.afterRun, { input, output });
42
+ await this.eventManager.emit(task.events.afterRun, { input, output }, task.id);
41
43
  await this.eventManager.emit(globalEvents_1.globalEvents.tasks.afterRun, {
42
44
  task,
43
45
  input,
44
46
  output,
45
- });
47
+ }, task.id);
46
48
  return output;
47
49
  }
48
50
  catch (e) {
@@ -50,12 +52,12 @@ class TaskRunner {
50
52
  const suppress = () => (isSuppressed = true);
51
53
  error = e;
52
54
  // If you want to rewthrow the error, this should be done inside the onError event.
53
- await this.eventManager.emit(task.events.onError, { error, suppress });
55
+ await this.eventManager.emit(task.events.onError, { error, suppress }, task.id);
54
56
  await this.eventManager.emit(globalEvents_1.globalEvents.tasks.onError, {
55
57
  task,
56
58
  error,
57
59
  suppress,
58
- });
60
+ }, task.id);
59
61
  if (!isSuppressed)
60
62
  throw e;
61
63
  }
@@ -70,6 +72,10 @@ class TaskRunner {
70
72
  createRunnerWithMiddleware(task, taskDependencies) {
71
73
  // this is the final next()
72
74
  let next = async (input) => {
75
+ this.logger.debug({
76
+ message: `Running task ${task.id}`,
77
+ input,
78
+ });
73
79
  return task.run.call(null, input, taskDependencies);
74
80
  };
75
81
  const existingMiddlewares = task.middleware;
@@ -1 +1 @@
1
- {"version":3,"file":"TaskRunner.js","sourceRoot":"","sources":["../../src/models/TaskRunner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TaskRunner.js","sourceRoot":"","sources":["../../src/models/TaskRunner.ts"],"names":[],"mappings":"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"}
package/dist/run.d.ts CHANGED
@@ -1,7 +1,4 @@
1
- import { TaskRunner } from "./models/TaskRunner";
2
1
  import { DependencyMapType, ITaskDefinition, IResourceDefinintion, IEventDefinition, IMiddlewareDefinition, DependencyValuesType, IResource } from "./defs";
3
- import { EventManager } from "./models/EventManager";
4
- import { Store } from "./models/Store";
5
2
  export type ResourcesStoreElementType<C = any, V = any, D extends DependencyMapType = {}> = {
6
3
  resource: IResourceDefinintion<C, V, D>;
7
4
  computedDependencies?: DependencyValuesType<D>;
@@ -24,9 +21,4 @@ export type RunnerState = {
24
21
  events: Record<string, EventStoreElementType>;
25
22
  middleware: Record<string, MiddlewareStoreElementType>;
26
23
  };
27
- export type RunnerType = {
28
- store: Store;
29
- eventManager: EventManager;
30
- taskRunner: TaskRunner;
31
- };
32
24
  export declare function run<C, V>(resource: IResource<C, V>, config?: C): Promise<V>;
package/dist/run.js CHANGED
@@ -12,10 +12,11 @@ const globalResources_1 = require("./globalResources");
12
12
  const Logger_1 = require("./models/Logger");
13
13
  async function run(resource, config) {
14
14
  const eventManager = new EventManager_1.EventManager();
15
- const store = new Store_1.Store(eventManager);
16
- const taskRunner = new TaskRunner_1.TaskRunner(store, eventManager);
17
- const processor = new DependencyProcessor_1.DependencyProcessor(store, eventManager, taskRunner);
15
+ // ensure for logger, that it can be used only after: computeAllDependencies() has executed
18
16
  const logger = new Logger_1.Logger(eventManager);
17
+ const store = new Store_1.Store(eventManager, logger);
18
+ const taskRunner = new TaskRunner_1.TaskRunner(store, eventManager, logger);
19
+ const processor = new DependencyProcessor_1.DependencyProcessor(store, eventManager, taskRunner, logger);
19
20
  // In the registration phase we register deeply all the resources, tasks, middleware and events
20
21
  store.initializeStore(resource, config);
21
22
  store.storeGenericItem(globalResources_1.globalResources.logger.with(logger));
@@ -26,19 +27,21 @@ async function run(resource, config) {
26
27
  if (circularDependencies.cycles.length > 0) {
27
28
  throw errors_1.Errors.circularDependencies(circularDependencies.cycles);
28
29
  }
30
+ // the overrides that were registered now will override the other registered resources
29
31
  await store.processOverrides();
30
- // a form of hooking, we store the events for all tasks
32
+ // a form of hooking, we create the events for all tasks and store them so they can be referenced
31
33
  await store.storeEventsForAllTasks();
32
34
  await processor.attachHooks();
33
35
  await processor.computeAllDependencies();
36
+ // After this stage, logger print policy could have been set.
37
+ await logger.debug("All elements have been initalized..");
34
38
  // Now we can safely compute dependencies without being afraid of an infinite loop.
35
39
  // The hooking part is done here.
36
- await eventManager.emit(globalEvents_1.globalEvents.beforeInit);
37
- // leftovers that were registered but not depended upon, except root
38
- await processor.initializeUninitializedResources();
40
+ await eventManager.emit(globalEvents_1.globalEvents.beforeInit, null, resource.id);
39
41
  // Now we can initialise the root resource
40
42
  await processor.initializeRoot();
41
- await eventManager.emit(globalEvents_1.globalEvents.afterInit);
43
+ await eventManager.emit(globalEvents_1.globalEvents.afterInit, null, resource.id);
44
+ await logger.debug("System initialized and operational.");
42
45
  // disallow manipulation or attaching more
43
46
  store.lock();
44
47
  return store.root.value;
package/dist/run.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":";;AA4DA,kBA6CC;AAzGD,oDAAiD;AAUjD,sEAAmE;AACnE,wDAAqD;AACrD,iDAA8C;AAC9C,0CAAuC;AACvC,+EAA4E;AAC5E,qCAAkC;AAClC,uDAAoD;AACpD,4CAAyC;AA2ClC,KAAK,UAAU,GAAG,CACvB,QAAyB,EACzB,MAAU;IAEV,MAAM,YAAY,GAAG,IAAI,2BAAY,EAAE,CAAC;IACxC,MAAM,KAAK,GAAG,IAAI,aAAK,CAAC,YAAY,CAAC,CAAC;IACtC,MAAM,UAAU,GAAG,IAAI,uBAAU,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IACvD,MAAM,SAAS,GAAG,IAAI,yCAAmB,CAAC,KAAK,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;IAC3E,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,YAAY,CAAC,CAAC;IAExC,+FAA+F;IAC/F,KAAK,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACxC,KAAK,CAAC,gBAAgB,CAAC,iCAAe,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5D,KAAK,CAAC,gBAAgB,CAAC,iCAAe,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAEpE,kGAAkG;IAClG,MAAM,cAAc,GAAG,KAAK,CAAC,iBAAiB,EAAE,CAAC;IACjD,MAAM,oBAAoB,GAAG,IAAA,mDAAwB,EAAC,cAAc,CAAC,CAAC;IACtE,IAAI,oBAAoB,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3C,MAAM,eAAM,CAAC,oBAAoB,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,KAAK,CAAC,gBAAgB,EAAE,CAAC;IAE/B,uDAAuD;IACvD,MAAM,KAAK,CAAC,sBAAsB,EAAE,CAAC;IACrC,MAAM,SAAS,CAAC,WAAW,EAAE,CAAC;IAC9B,MAAM,SAAS,CAAC,sBAAsB,EAAE,CAAC;IAEzC,mFAAmF;IACnF,iCAAiC;IACjC,MAAM,YAAY,CAAC,IAAI,CAAC,2BAAY,CAAC,UAAU,CAAC,CAAC;IAEjD,oEAAoE;IACpE,MAAM,SAAS,CAAC,gCAAgC,EAAE,CAAC;IAEnD,0CAA0C;IAC1C,MAAM,SAAS,CAAC,cAAc,EAAE,CAAC;IAEjC,MAAM,YAAY,CAAC,IAAI,CAAC,2BAAY,CAAC,SAAS,CAAC,CAAC;IAEhD,0CAA0C;IAC1C,KAAK,CAAC,IAAI,EAAE,CAAC;IAEb,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;AAC1B,CAAC"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":";;AAsDA,kBAuDC;AA7GD,oDAAiD;AAUjD,sEAAmE;AACnE,wDAAqD;AACrD,iDAA8C;AAC9C,0CAAuC;AACvC,+EAA4E;AAC5E,qCAAkC;AAClC,uDAAoD;AACpD,4CAAyC;AAqClC,KAAK,UAAU,GAAG,CACvB,QAAyB,EACzB,MAAU;IAEV,MAAM,YAAY,GAAG,IAAI,2BAAY,EAAE,CAAC;IAExC,2FAA2F;IAC3F,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,YAAY,CAAC,CAAC;IAExC,MAAM,KAAK,GAAG,IAAI,aAAK,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAC9C,MAAM,UAAU,GAAG,IAAI,uBAAU,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;IAC/D,MAAM,SAAS,GAAG,IAAI,yCAAmB,CACvC,KAAK,EACL,YAAY,EACZ,UAAU,EACV,MAAM,CACP,CAAC;IAEF,+FAA+F;IAC/F,KAAK,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACxC,KAAK,CAAC,gBAAgB,CAAC,iCAAe,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5D,KAAK,CAAC,gBAAgB,CAAC,iCAAe,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAEpE,kGAAkG;IAClG,MAAM,cAAc,GAAG,KAAK,CAAC,iBAAiB,EAAE,CAAC;IACjD,MAAM,oBAAoB,GAAG,IAAA,mDAAwB,EAAC,cAAc,CAAC,CAAC;IACtE,IAAI,oBAAoB,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3C,MAAM,eAAM,CAAC,oBAAoB,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;IACjE,CAAC;IAED,sFAAsF;IACtF,MAAM,KAAK,CAAC,gBAAgB,EAAE,CAAC;IAE/B,iGAAiG;IACjG,MAAM,KAAK,CAAC,sBAAsB,EAAE,CAAC;IACrC,MAAM,SAAS,CAAC,WAAW,EAAE,CAAC;IAC9B,MAAM,SAAS,CAAC,sBAAsB,EAAE,CAAC;IAEzC,6DAA6D;IAC7D,MAAM,MAAM,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;IAE1D,mFAAmF;IACnF,iCAAiC;IACjC,MAAM,YAAY,CAAC,IAAI,CAAC,2BAAY,CAAC,UAAU,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;IAEpE,0CAA0C;IAC1C,MAAM,SAAS,CAAC,cAAc,EAAE,CAAC;IAEjC,MAAM,YAAY,CAAC,IAAI,CAAC,2BAAY,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;IACnE,MAAM,MAAM,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;IAE1D,0CAA0C;IAC1C,KAAK,CAAC,IAAI,EAAE,CAAC;IAEb,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;AAC1B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bluelibs/runner",
3
- "version": "1.3.0",
3
+ "version": "1.5.0",
4
4
  "description": "BlueLibs Runner",
5
5
  "main": "dist/index.js",
6
6
  "repository": {
@@ -18,7 +18,7 @@
18
18
  "testonly": "npm test",
19
19
  "test:ci": "npm run coverage -- --ci --maxWorkers=2 --reporters=default --reporters=jest-junit",
20
20
  "prepublishOnly": "npm run build",
21
- "typedoc": "typedoc",
21
+ "typedoc": "typedoc --options typedoc.json",
22
22
  "benchmark": "jest --testMatch=\"**/__tests__/benchmark/benchmark.test.ts\" --testTimeout 10000"
23
23
  },
24
24
  "devDependencies": {
@@ -39,6 +39,7 @@
39
39
  "source-map-support": "^0.5.13",
40
40
  "ts-jest": "^29.0.0",
41
41
  "typedoc": "^0.26.7",
42
+ "typedoc-material-theme": "^1.1.0",
42
43
  "typescript": "^5.6.2"
43
44
  },
44
45
  "typings": "dist/index.d.ts",
@@ -12,3 +12,4 @@ import "./run.overrides.test";
12
12
  import "./run.middleware.test";
13
13
  import "./globalEvents.test";
14
14
  import "./errors.test";
15
+ import "./typesafety.test";
@@ -15,7 +15,7 @@ describe("EventManager", () => {
15
15
  const handler = jest.fn();
16
16
  eventManager.addListener(eventDefinition, handler);
17
17
 
18
- await eventManager.emit(eventDefinition, "testData");
18
+ await eventManager.emit(eventDefinition, "testData", "test");
19
19
 
20
20
  expect(handler).toHaveBeenCalledTimes(1);
21
21
  expect(handler).toHaveBeenCalledWith(
@@ -61,7 +61,7 @@ describe("EventManager", () => {
61
61
  { order: 3 }
62
62
  );
63
63
 
64
- await eventManager.emit(eventDefinition, "testData");
64
+ await eventManager.emit(eventDefinition, "testData", "test");
65
65
 
66
66
  expect(results).toEqual([0, 1, 2, 3]);
67
67
  });
@@ -72,10 +72,10 @@ describe("EventManager", () => {
72
72
 
73
73
  eventManager.addListener(eventDefinition, handler, { filter });
74
74
 
75
- await eventManager.emit(eventDefinition, "blocked");
75
+ await eventManager.emit(eventDefinition, "blocked", "test");
76
76
  expect(handler).not.toHaveBeenCalled();
77
77
 
78
- await eventManager.emit(eventDefinition, "allowed");
78
+ await eventManager.emit(eventDefinition, "allowed", "test");
79
79
  expect(handler).toHaveBeenCalledTimes(1);
80
80
  expect(handler).toHaveBeenCalledWith(
81
81
  expect.objectContaining({
@@ -89,7 +89,7 @@ describe("EventManager", () => {
89
89
 
90
90
  eventManager.addGlobalListener(handler);
91
91
 
92
- await eventManager.emit(eventDefinition, "testData");
92
+ await eventManager.emit(eventDefinition, "testData", "test");
93
93
 
94
94
  expect(handler).toHaveBeenCalledTimes(1);
95
95
  expect(handler).toHaveBeenCalledWith(
@@ -133,7 +133,7 @@ describe("EventManager", () => {
133
133
  { order: 3 }
134
134
  );
135
135
 
136
- await eventManager.emit(eventDefinition, "testData");
136
+ await eventManager.emit(eventDefinition, "testData", "test");
137
137
 
138
138
  expect(results).toEqual([
139
139
  "globalListener1",
@@ -169,8 +169,8 @@ describe("EventManager", () => {
169
169
  eventManager.addListener(eventDef1, handler1);
170
170
  eventManager.addListener(eventDef2, handler2);
171
171
 
172
- await eventManager.emit(eventDef1, "data1");
173
- await eventManager.emit(eventDef2, "data2");
172
+ await eventManager.emit(eventDef1, "data1", "test");
173
+ await eventManager.emit(eventDef2, "data2", "test");
174
174
 
175
175
  expect(handler1).toHaveBeenCalledTimes(1);
176
176
  expect(handler1).toHaveBeenCalledWith(
@@ -196,7 +196,7 @@ describe("EventManager", () => {
196
196
  eventManager.addListener(eventDefinition, handler1);
197
197
  eventManager.addListener(eventDefinition, handler2);
198
198
 
199
- await eventManager.emit(eventDefinition, "testData");
199
+ await eventManager.emit(eventDefinition, "testData", "test");
200
200
 
201
201
  expect(handler1).toHaveBeenCalledTimes(1);
202
202
  expect(handler2).toHaveBeenCalledTimes(1);
@@ -210,8 +210,8 @@ describe("EventManager", () => {
210
210
 
211
211
  eventManager.addListener([eventDef1, eventDef2], handler);
212
212
 
213
- await eventManager.emit(eventDef1, "data1");
214
- await eventManager.emit(eventDef2, "data2");
213
+ await eventManager.emit(eventDef1, "data1", "test");
214
+ await eventManager.emit(eventDef2, "data2", "test");
215
215
 
216
216
  expect(handler).toHaveBeenCalledTimes(2);
217
217
  expect(handler).toHaveBeenNthCalledWith(
@@ -240,7 +240,7 @@ describe("EventManager", () => {
240
240
  eventManager.addListener(eventDef1, handler1);
241
241
  eventManager.addListener(eventDef2, handler2);
242
242
 
243
- await eventManager.emit(eventDef1, "data1");
243
+ await eventManager.emit(eventDef1, "data1", "test");
244
244
 
245
245
  expect(handler1).toHaveBeenCalledTimes(1);
246
246
  expect(handler2).not.toHaveBeenCalled();
@@ -266,7 +266,7 @@ describe("EventManager", () => {
266
266
  { order: 0 }
267
267
  );
268
268
 
269
- await eventManager.emit(eventDefinition, "testData");
269
+ await eventManager.emit(eventDefinition, "testData", "test");
270
270
 
271
271
  expect(results).toEqual([0, 1]);
272
272
  });
@@ -279,7 +279,7 @@ describe("EventManager", () => {
279
279
  eventManager.addListener(eventDefinition, handler);
280
280
 
281
281
  await expect(
282
- eventManager.emit(eventDefinition, "testData")
282
+ eventManager.emit(eventDefinition, "testData", "test")
283
283
  ).rejects.toThrow("Handler error");
284
284
  });
285
285
 
@@ -293,7 +293,7 @@ describe("EventManager", () => {
293
293
  eventManager.addListener(eventDefinition, handler2);
294
294
 
295
295
  await expect(
296
- eventManager.emit(eventDefinition, "testData")
296
+ eventManager.emit(eventDefinition, "testData", "test")
297
297
  ).rejects.toThrow("Handler error");
298
298
 
299
299
  // The second handler should have been called despite the error in the first
@@ -316,7 +316,7 @@ describe("EventManager", () => {
316
316
  eventManager.lock();
317
317
 
318
318
  await expect(
319
- eventManager.emit(eventDefinition, "testData")
319
+ eventManager.emit(eventDefinition, "testData", "test")
320
320
  ).resolves.toBeUndefined();
321
321
 
322
322
  expect(handler).toHaveBeenCalledTimes(1);
@@ -340,7 +340,7 @@ describe("EventManager", () => {
340
340
  { order: 1 }
341
341
  );
342
342
 
343
- await eventManager.emit(eventDefinition, "testData");
343
+ await eventManager.emit(eventDefinition, "testData", "test");
344
344
 
345
345
  // According to the merge logic, event listeners come before global listeners when orders are equal
346
346
  expect(results).toEqual(["eventListener", "globalListener"]);
@@ -352,16 +352,16 @@ describe("EventManager", () => {
352
352
 
353
353
  eventManager.addGlobalListener(handler, { filter });
354
354
 
355
- await eventManager.emit(eventDefinition, "blocked");
355
+ await eventManager.emit(eventDefinition, "blocked", "test");
356
356
  expect(handler).not.toHaveBeenCalled();
357
357
 
358
- await eventManager.emit(eventDefinition, "allowed");
358
+ await eventManager.emit(eventDefinition, "allowed", "test");
359
359
  expect(handler).toHaveBeenCalledTimes(1);
360
360
  });
361
361
 
362
362
  it("should handle emitting with no listeners", async () => {
363
363
  await expect(
364
- eventManager.emit(eventDefinition, "testData")
364
+ eventManager.emit(eventDefinition, "testData", "test")
365
365
  ).resolves.toBeUndefined();
366
366
  });
367
367
 
@@ -372,7 +372,7 @@ describe("EventManager", () => {
372
372
 
373
373
  eventManager.addListener(voidEventDefinition, handler);
374
374
 
375
- await eventManager.emit(voidEventDefinition);
375
+ await eventManager.emit(voidEventDefinition, undefined, "test");
376
376
 
377
377
  expect(handler).toHaveBeenCalledTimes(1);
378
378
  expect(handler).toHaveBeenCalledWith(
@@ -26,7 +26,8 @@ describe("Logger", () => {
26
26
  level: testLevel,
27
27
  data: testData,
28
28
  timestamp: expect.any(Date),
29
- })
29
+ }),
30
+ "unknown"
30
31
  );
31
32
  });
32
33
 
@@ -43,7 +44,7 @@ describe("Logger", () => {
43
44
  mockEventManager.emit = jest.fn();
44
45
 
45
46
  for (const level of levels) {
46
- await logger.log(level, `Test ${level} message`);
47
+ await logger.log(level, `Test ${level} message`, "testSource");
47
48
 
48
49
  expect(mockEventManager.emit).toHaveBeenCalledWith(
49
50
  globalEvents.log,
@@ -51,7 +52,8 @@ describe("Logger", () => {
51
52
  level,
52
53
  data: `Test ${level} message`,
53
54
  timestamp: expect.any(Date),
54
- })
55
+ }),
56
+ "testSource"
55
57
  );
56
58
  }
57
59
  });
@@ -71,7 +73,7 @@ describe("Logger", () => {
71
73
  it("should print log messages correctly", async () => {
72
74
  const testLog: ILog = {
73
75
  level: "info",
74
- context: "test",
76
+ source: "test",
75
77
  data: "Test log message",
76
78
  timestamp: new Date("2023-01-01T00:00:00Z"),
77
79
  };
@@ -133,8 +135,51 @@ describe("Logger", () => {
133
135
 
134
136
  await logger[level]("Test log message");
135
137
 
136
- expect(logSpy).toHaveBeenCalledWith(level, "Test log message");
138
+ expect(logSpy).toHaveBeenCalledWith(
139
+ level,
140
+ "Test log message",
141
+ undefined // the context parameter
142
+ );
137
143
  });
138
144
  }
139
145
  });
146
+
147
+ it("should auto-print logs based on autoPrintLogsAfter option", async () => {
148
+ const autoPrintLevel: LogLevels = "warn";
149
+ logger.setPrintThreshold(autoPrintLevel);
150
+ const consoleLogSpy = jest.spyOn(console, "log").mockImplementation();
151
+
152
+ const levels: Array<LogLevels> = [
153
+ "trace",
154
+ "debug",
155
+ "info",
156
+ "warn",
157
+ "error",
158
+ "critical",
159
+ ];
160
+
161
+ for (const level of levels) {
162
+ logger.setPrintThreshold(level);
163
+ await logger.log(level, `Test ${level} message`);
164
+
165
+ expect(consoleLogSpy).toHaveBeenCalledWith(
166
+ expect.stringContaining(`Test ${level} message`)
167
+ );
168
+ }
169
+
170
+ // ensure events with a higher level thatn auto print level are printed, and lower levels are not
171
+ logger.setPrintThreshold("error");
172
+ await logger.log("info", "xx Test info message");
173
+ await logger.log("error", "xx Test error message");
174
+
175
+ expect(consoleLogSpy).toHaveBeenCalledWith(
176
+ expect.stringContaining("xx Test error message")
177
+ );
178
+
179
+ expect(consoleLogSpy).not.toHaveBeenCalledWith(
180
+ expect.stringContaining("xx Test info message")
181
+ );
182
+
183
+ consoleLogSpy.mockRestore();
184
+ });
140
185
  });