@bluelibs/runner 4.2.2 → 4.4.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.
- package/AI.md +33 -4
- package/LICENSE.md +1 -1
- package/README.md +158 -206
- package/dist/errors.d.ts +15 -0
- package/dist/errors.js +23 -1
- package/dist/errors.js.map +1 -1
- package/dist/globals/resources/debug/executionTracker.middleware.js +18 -29
- package/dist/globals/resources/debug/executionTracker.middleware.js.map +1 -1
- package/dist/globals/resources/debug/globalEvent.hook.js +2 -2
- package/dist/globals/resources/debug/globalEvent.hook.js.map +1 -1
- package/dist/globals/resources/debug/hook.hook.js +3 -3
- package/dist/globals/resources/debug/hook.hook.js.map +1 -1
- package/dist/globals/resources/debug/middleware.hook.js +1 -1
- package/dist/globals/resources/debug/middleware.hook.js.map +1 -1
- package/dist/models/DependencyProcessor.d.ts +1 -1
- package/dist/models/DependencyProcessor.js +9 -6
- package/dist/models/DependencyProcessor.js.map +1 -1
- package/dist/models/EventManager.d.ts +6 -0
- package/dist/models/EventManager.js +124 -46
- package/dist/models/EventManager.js.map +1 -1
- package/dist/models/LogPrinter.js +45 -35
- package/dist/models/LogPrinter.js.map +1 -1
- package/dist/models/Logger.d.ts +1 -1
- package/dist/models/Logger.js +12 -4
- package/dist/models/Logger.js.map +1 -1
- package/dist/models/MiddlewareManager.js +17 -45
- package/dist/models/MiddlewareManager.js.map +1 -1
- package/dist/models/Store.d.ts +1 -0
- package/dist/models/Store.js +7 -0
- package/dist/models/Store.js.map +1 -1
- package/dist/models/StoreRegistry.d.ts +6 -1
- package/dist/models/StoreRegistry.js +48 -0
- package/dist/models/StoreRegistry.js.map +1 -1
- package/dist/models/TaskRunner.js +14 -1
- package/dist/models/TaskRunner.js.map +1 -1
- package/dist/models/UnhandledError.js +3 -1
- package/dist/models/UnhandledError.js.map +1 -1
- package/dist/processHooks.js.map +1 -1
- package/dist/run.js +12 -7
- package/dist/run.js.map +1 -1
- package/dist/types/runner.d.ts +11 -0
- package/package.json +6 -2
|
@@ -8,7 +8,7 @@ const utils_1 = require("./utils");
|
|
|
8
8
|
const debugConfig_resource_1 = require("./debugConfig.resource");
|
|
9
9
|
const types_1 = require("./types");
|
|
10
10
|
exports.globalEventListener = (0, define_1.defineHook)({
|
|
11
|
-
id: "debug.
|
|
11
|
+
id: "globals.debug.hooks.onAnyEvent",
|
|
12
12
|
on: "*",
|
|
13
13
|
dependencies: {
|
|
14
14
|
logger: globalResources_1.globalResources.logger,
|
|
@@ -22,7 +22,7 @@ exports.globalEventListener = (0, define_1.defineHook)({
|
|
|
22
22
|
if (debugConfig.logEventEmissionOnRun) {
|
|
23
23
|
const message = `Event ${String(event.id)} emitted`;
|
|
24
24
|
await logger.info(message, {
|
|
25
|
-
source: "debug.
|
|
25
|
+
source: "globals.debug.hooks.onAnyEvent",
|
|
26
26
|
data: debugConfig.logEventEmissionInput
|
|
27
27
|
? { data: event.data }
|
|
28
28
|
: undefined,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"globalEvent.hook.js","sourceRoot":"","sources":["../../../../src/globals/resources/debug/globalEvent.hook.ts"],"names":[],"mappings":";;;AAAA,4CAA6C;AAC7C,2DAAwD;AACxD,iDAA8C;AAC9C,mCAAuC;AACvC,iEAAqD;AACrD,mCAAoC;AAGvB,QAAA,mBAAmB,GAAG,IAAA,mBAAU,EAAC;IAC5C,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"globalEvent.hook.js","sourceRoot":"","sources":["../../../../src/globals/resources/debug/globalEvent.hook.ts"],"names":[],"mappings":";;;AAAA,4CAA6C;AAC7C,2DAAwD;AACxD,iDAA8C;AAC9C,mCAAuC;AACvC,iEAAqD;AACrD,mCAAoC;AAGvB,QAAA,mBAAmB,GAAG,IAAA,mBAAU,EAAC;IAC5C,EAAE,EAAE,gCAAgC;IACpC,EAAE,EAAE,GAAG;IACP,YAAY,EAAE;QACZ,MAAM,EAAE,iCAAe,CAAC,MAAM;QAC9B,WAAW,EAAX,kCAAW;KACZ;IACD,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE;QAC5C,IAAI,IAAA,oBAAY,EAAC,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO;QACT,CAAC;QAED,WAAW,GAAG,IAAA,iBAAS,EAAC,WAAW,EAAE,KAAM,CAAC,CAAC;QAC7C,IAAI,WAAW,CAAC,qBAAqB,EAAE,CAAC;YACtC,MAAM,OAAO,GAAG,SAAS,MAAM,CAAC,KAAM,CAAC,EAAE,CAAC,UAAU,CAAC;YACrD,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE;gBACzB,MAAM,EAAE,gCAAgC;gBACxC,IAAI,EAAE,WAAW,CAAC,qBAAqB;oBACrC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAM,CAAC,IAAI,EAAE;oBACvB,CAAC,CAAC,SAAS;aACd,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,IAAI,EAAE;QACJ,KAAK,EAAE,yBAAyB;QAChC,WAAW,EAAE,6BAA6B;KAC3C;IACD,IAAI,EAAE,CAAC,uBAAU,CAAC,MAAM,CAAC;CAC1B,CAAC,CAAC"}
|
|
@@ -8,7 +8,7 @@ const utils_1 = require("./utils");
|
|
|
8
8
|
const debugConfig_resource_1 = require("./debugConfig.resource");
|
|
9
9
|
const types_1 = require("./types");
|
|
10
10
|
exports.hookInterceptorResource = (0, define_1.defineResource)({
|
|
11
|
-
id: "debug.
|
|
11
|
+
id: "globals.debug.resources.hookInterceptor",
|
|
12
12
|
meta: {
|
|
13
13
|
title: "Hook Interceptor",
|
|
14
14
|
description: "Intercepts hooks for debug logging, skipping system-tagged hooks.",
|
|
@@ -31,7 +31,7 @@ exports.hookInterceptorResource = (0, define_1.defineResource)({
|
|
|
31
31
|
const hookId = hook.id;
|
|
32
32
|
let logString = `Hook triggered for ${String(hookId)}`;
|
|
33
33
|
await logger.info(logString, {
|
|
34
|
-
source: "debug.
|
|
34
|
+
source: "globals.debug.resources.hookInterceptor",
|
|
35
35
|
});
|
|
36
36
|
}
|
|
37
37
|
await next(hook, event);
|
|
@@ -39,7 +39,7 @@ exports.hookInterceptorResource = (0, define_1.defineResource)({
|
|
|
39
39
|
const hookId = hook.id;
|
|
40
40
|
let logString = `Hook completed for ${String(hookId)}`;
|
|
41
41
|
await logger.info(logString, {
|
|
42
|
-
source: "debug.
|
|
42
|
+
source: "globals.debug.resources.hookInterceptor",
|
|
43
43
|
});
|
|
44
44
|
}
|
|
45
45
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook.hook.js","sourceRoot":"","sources":["../../../../src/globals/resources/debug/hook.hook.ts"],"names":[],"mappings":";;;AAAA,4CAA6D;AAC7D,2DAAwD;AACxD,iDAA8C;AAC9C,mCAAuC;AACvC,iEAAqD;AACrD,mCAAoC;AAIvB,QAAA,uBAAuB,GAAG,IAAA,uBAAc,EAAC;IACpD,EAAE,EAAE
|
|
1
|
+
{"version":3,"file":"hook.hook.js","sourceRoot":"","sources":["../../../../src/globals/resources/debug/hook.hook.ts"],"names":[],"mappings":";;;AAAA,4CAA6D;AAC7D,2DAAwD;AACxD,iDAA8C;AAC9C,mCAAuC;AACvC,iEAAqD;AACrD,mCAAoC;AAIvB,QAAA,uBAAuB,GAAG,IAAA,uBAAc,EAAC;IACpD,EAAE,EAAE,yCAAyC;IAC7C,IAAI,EAAE;QACJ,KAAK,EAAE,kBAAkB;QACzB,WAAW,EACT,mEAAmE;KACtE;IACD,IAAI,EAAE,CAAC,uBAAU,CAAC,MAAM,CAAC;IACzB,YAAY,EAAE;QACZ,MAAM,EAAE,iCAAe,CAAC,MAAM;QAC9B,WAAW,EAAX,kCAAW;QACX,YAAY,EAAE,iCAAe,CAAC,YAAY;KAC3C;IACD,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QAC1B,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;YAC1D,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;YAErC,sDAAsD;YACtD,IAAI,IAAA,oBAAY,EAAC,IAAI,CAAC,EAAE,CAAC;gBACvB,OAAO,MAAM,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACjC,CAAC;YAED,MAAM,QAAQ,GAAG,IAAA,iBAAS,EAAC,WAAW,EAAE,KAAM,CAAC,CAAC;YAChD,IAAI,QAAQ,CAAC,gBAAgB,EAAE,CAAC;gBAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;gBACvB,IAAI,SAAS,GAAG,sBAAsB,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;gBACvD,MAAM,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE;oBAC3B,MAAM,EAAE,yCAAyC;iBAClD,CAAC,CAAC;YACL,CAAC;YAED,MAAM,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAExB,IAAI,QAAQ,CAAC,gBAAgB,EAAE,CAAC;gBAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;gBACvB,IAAI,SAAS,GAAG,sBAAsB,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;gBACvD,MAAM,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE;oBAC3B,MAAM,EAAE,yCAAyC;iBAClD,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -7,7 +7,7 @@ const globalTags_1 = require("../../globalTags");
|
|
|
7
7
|
const types_1 = require("./types");
|
|
8
8
|
const debugConfig_resource_1 = require("./debugConfig.resource");
|
|
9
9
|
const utils_1 = require("./utils");
|
|
10
|
-
const id = "debug.
|
|
10
|
+
const id = "globals.debug.resources.middlewareInterceptor";
|
|
11
11
|
exports.middlewareInterceptorResource = (0, define_1.defineResource)({
|
|
12
12
|
id,
|
|
13
13
|
meta: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.hook.js","sourceRoot":"","sources":["../../../../src/globals/resources/debug/middleware.hook.ts"],"names":[],"mappings":";;;AAAA,4CAAiD;AACjD,2DAAwD;AACxD,iDAA8C;AAC9C,mCAAoC;AACpC,iEAAqD;AACrD,mCAAuC;AAIvC,MAAM,EAAE,GAAG,
|
|
1
|
+
{"version":3,"file":"middleware.hook.js","sourceRoot":"","sources":["../../../../src/globals/resources/debug/middleware.hook.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,8 +14,8 @@ export declare class DependencyProcessor {
|
|
|
14
14
|
protected readonly store: Store;
|
|
15
15
|
protected readonly eventManager: EventManager;
|
|
16
16
|
protected readonly taskRunner: TaskRunner;
|
|
17
|
-
protected readonly logger: Logger;
|
|
18
17
|
protected readonly resourceInitializer: ResourceInitializer;
|
|
18
|
+
protected readonly logger: Logger;
|
|
19
19
|
constructor(store: Store, eventManager: EventManager, taskRunner: TaskRunner, logger: Logger);
|
|
20
20
|
/**
|
|
21
21
|
* This function is going to go through all the resources, tasks and middleware to compute their required dependencies.
|
|
@@ -4,6 +4,7 @@ exports.DependencyProcessor = void 0;
|
|
|
4
4
|
const utils = require("../define");
|
|
5
5
|
const ResourceInitializer_1 = require("./ResourceInitializer");
|
|
6
6
|
const errors_1 = require("../errors");
|
|
7
|
+
const Logger_1 = require("./Logger");
|
|
7
8
|
/**
|
|
8
9
|
* This class is responsible of setting up dependencies with their respective computedValues.
|
|
9
10
|
* Note that all elements must have been previously registered otherwise errors will be thrown
|
|
@@ -13,13 +14,13 @@ class DependencyProcessor {
|
|
|
13
14
|
store;
|
|
14
15
|
eventManager;
|
|
15
16
|
taskRunner;
|
|
16
|
-
logger;
|
|
17
17
|
resourceInitializer;
|
|
18
|
+
logger;
|
|
18
19
|
constructor(store, eventManager, taskRunner, logger) {
|
|
19
20
|
this.store = store;
|
|
20
21
|
this.eventManager = eventManager;
|
|
21
22
|
this.taskRunner = taskRunner;
|
|
22
|
-
this.logger = logger;
|
|
23
|
+
this.logger = logger.with({ source: "dependencyProcessor" });
|
|
23
24
|
this.resourceInitializer = new ResourceInitializer_1.ResourceInitializer(store, eventManager, logger);
|
|
24
25
|
}
|
|
25
26
|
/**
|
|
@@ -182,6 +183,11 @@ class DependencyProcessor {
|
|
|
182
183
|
for (const key in map) {
|
|
183
184
|
try {
|
|
184
185
|
object[key] = await this.extractDependency(map[key], source);
|
|
186
|
+
// Special handling, a little bit of magic and memory sacrifice for the sake of observability.
|
|
187
|
+
// Maybe later we can allow this to be opt-in to save 'memory' in the case of large tasks?
|
|
188
|
+
if (object[key] instanceof Logger_1.Logger) {
|
|
189
|
+
object[key] = object[key].with({ source });
|
|
190
|
+
}
|
|
185
191
|
}
|
|
186
192
|
catch (e) {
|
|
187
193
|
const errorMessage = String(e);
|
|
@@ -255,10 +261,7 @@ class DependencyProcessor {
|
|
|
255
261
|
throw new errors_1.DependencyNotFoundError(`Resource ${object.id}`);
|
|
256
262
|
}
|
|
257
263
|
const { resource, config } = storeResource;
|
|
258
|
-
if (storeResource.isInitialized) {
|
|
259
|
-
return storeResource.value;
|
|
260
|
-
}
|
|
261
|
-
else {
|
|
264
|
+
if (!storeResource.isInitialized) {
|
|
262
265
|
// check if it has an initialisation function that provides the value
|
|
263
266
|
if (resource.init) {
|
|
264
267
|
const depMap = (resource.dependencies || {});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DependencyProcessor.js","sourceRoot":"","sources":["../../src/models/DependencyProcessor.ts"],"names":[],"mappings":";;;AAgBA,mCAAmC;AAEnC,+DAA4D;AAE5D,sCAImB;
|
|
1
|
+
{"version":3,"file":"DependencyProcessor.js","sourceRoot":"","sources":["../../src/models/DependencyProcessor.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,6 +32,12 @@ export declare class EventManager {
|
|
|
32
32
|
private globalListenersCacheValid;
|
|
33
33
|
private emissionInterceptors;
|
|
34
34
|
private hookInterceptors;
|
|
35
|
+
private readonly emissionStack;
|
|
36
|
+
private readonly currentHookIdContext;
|
|
37
|
+
private readonly runtimeCycleDetection;
|
|
38
|
+
constructor(options?: {
|
|
39
|
+
runtimeCycleDetection?: boolean;
|
|
40
|
+
});
|
|
35
41
|
/**
|
|
36
42
|
* Gets the current lock status of the EventManager
|
|
37
43
|
*/
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.EventManager = void 0;
|
|
4
4
|
const errors_1 = require("../errors");
|
|
5
5
|
const globalTags_1 = require("../globals/globalTags");
|
|
6
|
+
const node_async_hooks_1 = require("node:async_hooks");
|
|
6
7
|
/**
|
|
7
8
|
* Default options for event handlers
|
|
8
9
|
*/
|
|
@@ -22,8 +23,17 @@ class EventManager {
|
|
|
22
23
|
// Interceptors storage
|
|
23
24
|
emissionInterceptors = [];
|
|
24
25
|
hookInterceptors = [];
|
|
26
|
+
// Tracks the current emission chain to detect cycles
|
|
27
|
+
emissionStack = new node_async_hooks_1.AsyncLocalStorage();
|
|
28
|
+
// Tracks currently executing hook id (if any)
|
|
29
|
+
currentHookIdContext = new node_async_hooks_1.AsyncLocalStorage();
|
|
25
30
|
// Locking mechanism to prevent modifications after initialization
|
|
26
31
|
#isLocked = false;
|
|
32
|
+
// Feature flags
|
|
33
|
+
runtimeCycleDetection;
|
|
34
|
+
constructor(options) {
|
|
35
|
+
this.runtimeCycleDetection = options?.runtimeCycleDetection ?? true;
|
|
36
|
+
}
|
|
27
37
|
// ==================== PUBLIC API ====================
|
|
28
38
|
/**
|
|
29
39
|
* Gets the current lock status of the EventManager
|
|
@@ -55,51 +65,93 @@ class EventManager {
|
|
|
55
65
|
throw new errors_1.ValidationError("Event payload", eventDefinition.id, error instanceof Error ? error : new Error(String(error)));
|
|
56
66
|
}
|
|
57
67
|
}
|
|
58
|
-
const
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
68
|
+
const frame = { id: eventDefinition.id, source };
|
|
69
|
+
const processEmission = async () => {
|
|
70
|
+
// Determine whether this emission should be excluded from global listeners
|
|
71
|
+
/* istanbul ignore next */
|
|
72
|
+
const pseudoForExclude = {
|
|
73
|
+
id: eventDefinition.id,
|
|
74
|
+
data,
|
|
75
|
+
timestamp: new Date(),
|
|
76
|
+
source,
|
|
77
|
+
meta: eventDefinition.meta || {},
|
|
78
|
+
stopPropagation: () => { },
|
|
79
|
+
isPropagationStopped: () => false,
|
|
80
|
+
tags: eventDefinition.tags,
|
|
81
|
+
};
|
|
82
|
+
const excludeFromGlobal = this.isExcludedFromGlobal(pseudoForExclude);
|
|
83
|
+
// Choose listeners: if globals are excluded, only use event-specific listeners
|
|
84
|
+
const allListeners = excludeFromGlobal
|
|
85
|
+
? this.listeners.get(eventDefinition.id) || []
|
|
86
|
+
: this.getCachedMergedListeners(eventDefinition.id);
|
|
87
|
+
let propagationStopped = false;
|
|
88
|
+
const event = {
|
|
89
|
+
id: eventDefinition.id,
|
|
90
|
+
data,
|
|
91
|
+
timestamp: new Date(),
|
|
92
|
+
source,
|
|
93
|
+
meta: eventDefinition.meta || {},
|
|
94
|
+
stopPropagation: () => {
|
|
95
|
+
propagationStopped = true;
|
|
96
|
+
},
|
|
97
|
+
isPropagationStopped: () => propagationStopped,
|
|
98
|
+
tags: eventDefinition.tags,
|
|
99
|
+
};
|
|
100
|
+
// Create the base emission function
|
|
101
|
+
const baseEmit = async (eventToEmit) => {
|
|
102
|
+
if (allListeners.length === 0) {
|
|
103
|
+
return;
|
|
81
104
|
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
105
|
+
const excludeFromGlobal = this.isExcludedFromGlobal(eventToEmit);
|
|
106
|
+
for (const listener of allListeners) {
|
|
107
|
+
if (propagationStopped) {
|
|
108
|
+
break;
|
|
109
|
+
}
|
|
110
|
+
// Skip handlers that identify themselves as the source of this event
|
|
111
|
+
// (prevents a listener from re-invoking itself).
|
|
112
|
+
if (listener.id && listener.id === eventToEmit.source) {
|
|
113
|
+
continue;
|
|
114
|
+
}
|
|
115
|
+
if (!listener.filter || listener.filter(eventToEmit)) {
|
|
116
|
+
await listener.handler(eventToEmit);
|
|
117
|
+
}
|
|
90
118
|
}
|
|
119
|
+
};
|
|
120
|
+
// Apply emission interceptors (last added runs first)
|
|
121
|
+
let emitWithInterceptors = baseEmit;
|
|
122
|
+
// Reverse the interceptors so the last added runs first
|
|
123
|
+
const reversedInterceptors = [...this.emissionInterceptors].reverse();
|
|
124
|
+
for (const interceptor of reversedInterceptors) {
|
|
125
|
+
const nextFunction = emitWithInterceptors;
|
|
126
|
+
emitWithInterceptors = async (eventToEmit) => interceptor(nextFunction, eventToEmit);
|
|
91
127
|
}
|
|
128
|
+
// Execute the emission with interceptors
|
|
129
|
+
await emitWithInterceptors(event);
|
|
92
130
|
};
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
131
|
+
if (this.runtimeCycleDetection) {
|
|
132
|
+
// Detect re-entrant event cycles: same event id appearing in the current chain
|
|
133
|
+
const currentStack = this.emissionStack.getStore();
|
|
134
|
+
if (currentStack) {
|
|
135
|
+
const cycleStart = currentStack.findIndex((f) => f.id === frame.id);
|
|
136
|
+
if (cycleStart !== -1) {
|
|
137
|
+
const top = currentStack[currentStack.length - 1];
|
|
138
|
+
const currentHookId = this.currentHookIdContext.getStore();
|
|
139
|
+
const safeReEmitBySameHook = top.id === frame.id && currentHookId && currentHookId === source;
|
|
140
|
+
if (!safeReEmitBySameHook) {
|
|
141
|
+
throw new errors_1.EventCycleError([
|
|
142
|
+
...currentStack.slice(cycleStart),
|
|
143
|
+
frame,
|
|
144
|
+
]);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
const nextStack = currentStack ? [...currentStack, frame] : [frame];
|
|
149
|
+
await this.emissionStack.run(nextStack, processEmission);
|
|
150
|
+
}
|
|
151
|
+
else {
|
|
152
|
+
// Fast path without AsyncLocalStorage context tracking
|
|
153
|
+
await processEmission();
|
|
100
154
|
}
|
|
101
|
-
// Execute the emission with interceptors
|
|
102
|
-
await emitWithInterceptors(event);
|
|
103
155
|
}
|
|
104
156
|
/**
|
|
105
157
|
* Registers an event listener for specific event(s).
|
|
@@ -114,7 +166,8 @@ class EventManager {
|
|
|
114
166
|
const newListener = {
|
|
115
167
|
handler,
|
|
116
168
|
order: options.order || 0,
|
|
117
|
-
|
|
169
|
+
filter: options.filter,
|
|
170
|
+
id: options.id,
|
|
118
171
|
isGlobal: false,
|
|
119
172
|
};
|
|
120
173
|
if (Array.isArray(event)) {
|
|
@@ -145,6 +198,7 @@ class EventManager {
|
|
|
145
198
|
handler,
|
|
146
199
|
order: options.order || 0,
|
|
147
200
|
filter: options.filter,
|
|
201
|
+
id: options.id,
|
|
148
202
|
isGlobal: true,
|
|
149
203
|
};
|
|
150
204
|
this.insertListener(this.globalListeners, newListener);
|
|
@@ -157,11 +211,30 @@ class EventManager {
|
|
|
157
211
|
* @returns true if listeners exist, false otherwise
|
|
158
212
|
*/
|
|
159
213
|
hasListeners(eventDefinition) {
|
|
160
|
-
const eventListeners = this.listeners.get(eventDefinition.id);
|
|
161
|
-
if (
|
|
214
|
+
const eventListeners = this.listeners.get(eventDefinition.id) || [];
|
|
215
|
+
if (eventListeners.length > 0) {
|
|
216
|
+
return true;
|
|
217
|
+
}
|
|
218
|
+
if (this.globalListeners.length === 0) {
|
|
162
219
|
return false;
|
|
163
220
|
}
|
|
164
|
-
|
|
221
|
+
// If the event definition carries the tag that excludes it from global
|
|
222
|
+
// listeners, report no listeners (since globals would be skipped at emit).
|
|
223
|
+
/* istanbul ignore next */
|
|
224
|
+
const pseudoEmission = {
|
|
225
|
+
id: eventDefinition.id,
|
|
226
|
+
data: undefined,
|
|
227
|
+
timestamp: new Date(),
|
|
228
|
+
source: "",
|
|
229
|
+
meta: eventDefinition.meta || {},
|
|
230
|
+
stopPropagation: () => { },
|
|
231
|
+
isPropagationStopped: () => false,
|
|
232
|
+
tags: eventDefinition.tags,
|
|
233
|
+
};
|
|
234
|
+
if (this.isExcludedFromGlobal(pseudoEmission)) {
|
|
235
|
+
return false;
|
|
236
|
+
}
|
|
237
|
+
return true;
|
|
165
238
|
}
|
|
166
239
|
/**
|
|
167
240
|
* Adds an interceptor for all event emissions
|
|
@@ -213,8 +286,13 @@ class EventManager {
|
|
|
213
286
|
const nextFunction = executeWithInterceptors;
|
|
214
287
|
executeWithInterceptors = async (hookToExecute, eventForHook) => interceptor(nextFunction, hookToExecute, eventForHook);
|
|
215
288
|
}
|
|
216
|
-
// Execute the hook with interceptors
|
|
217
|
-
|
|
289
|
+
// Execute the hook with interceptors within current hook context
|
|
290
|
+
if (this.runtimeCycleDetection) {
|
|
291
|
+
return await this.currentHookIdContext.run(hook.id, async () => await executeWithInterceptors(hook, event));
|
|
292
|
+
}
|
|
293
|
+
else {
|
|
294
|
+
return await executeWithInterceptors(hook, event);
|
|
295
|
+
}
|
|
218
296
|
}
|
|
219
297
|
// ==================== PRIVATE METHODS ====================
|
|
220
298
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventManager.js","sourceRoot":"","sources":["../../src/models/EventManager.ts"],"names":[],"mappings":";;;AAOA,
|
|
1
|
+
{"version":3,"file":"EventManager.js","sourceRoot":"","sources":["../../src/models/EventManager.ts"],"names":[],"mappings":"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"}
|