@bluelibs/runner 4.5.0-alpha → 4.5.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +4265 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.mts +1734 -0
- package/dist/index.d.ts +1696 -45
- package/dist/index.mjs +4233 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +11 -14
- package/dist/context.d.ts +0 -29
- package/dist/context.js +0 -52
- package/dist/context.js.map +0 -1
- package/dist/define.d.ts +0 -9
- package/dist/define.js +0 -32
- package/dist/define.js.map +0 -1
- package/dist/definers/defineEvent.d.ts +0 -2
- package/dist/definers/defineEvent.js +0 -23
- package/dist/definers/defineEvent.js.map +0 -1
- package/dist/definers/defineHook.d.ts +0 -6
- package/dist/definers/defineHook.js +0 -24
- package/dist/definers/defineHook.js.map +0 -1
- package/dist/definers/defineOverride.d.ts +0 -14
- package/dist/definers/defineOverride.js +0 -13
- package/dist/definers/defineOverride.js.map +0 -1
- package/dist/definers/defineResource.d.ts +0 -2
- package/dist/definers/defineResource.js +0 -69
- package/dist/definers/defineResource.js.map +0 -1
- package/dist/definers/defineResourceMiddleware.d.ts +0 -2
- package/dist/definers/defineResourceMiddleware.js +0 -42
- package/dist/definers/defineResourceMiddleware.js.map +0 -1
- package/dist/definers/defineTag.d.ts +0 -12
- package/dist/definers/defineTag.js +0 -107
- package/dist/definers/defineTag.js.map +0 -1
- package/dist/definers/defineTask.d.ts +0 -15
- package/dist/definers/defineTask.js +0 -42
- package/dist/definers/defineTask.js.map +0 -1
- package/dist/definers/defineTaskMiddleware.d.ts +0 -2
- package/dist/definers/defineTaskMiddleware.js +0 -42
- package/dist/definers/defineTaskMiddleware.js.map +0 -1
- package/dist/definers/tools.d.ts +0 -45
- package/dist/definers/tools.js +0 -75
- package/dist/definers/tools.js.map +0 -1
- package/dist/defs.d.ts +0 -29
- package/dist/defs.js +0 -45
- package/dist/defs.js.map +0 -1
- package/dist/errors.d.ts +0 -96
- package/dist/errors.js +0 -178
- package/dist/errors.js.map +0 -1
- package/dist/globals/globalEvents.d.ts +0 -17
- package/dist/globals/globalEvents.js +0 -33
- package/dist/globals/globalEvents.js.map +0 -1
- package/dist/globals/globalMiddleware.d.ts +0 -31
- package/dist/globals/globalMiddleware.js +0 -25
- package/dist/globals/globalMiddleware.js.map +0 -1
- package/dist/globals/globalResources.d.ts +0 -30
- package/dist/globals/globalResources.js +0 -55
- package/dist/globals/globalResources.js.map +0 -1
- package/dist/globals/globalTags.d.ts +0 -9
- package/dist/globals/globalTags.js +0 -23
- package/dist/globals/globalTags.js.map +0 -1
- package/dist/globals/middleware/cache.middleware.d.ts +0 -27
- package/dist/globals/middleware/cache.middleware.js +0 -73
- package/dist/globals/middleware/cache.middleware.js.map +0 -1
- package/dist/globals/middleware/requireContext.middleware.d.ts +0 -6
- package/dist/globals/middleware/requireContext.middleware.js +0 -16
- package/dist/globals/middleware/requireContext.middleware.js.map +0 -1
- package/dist/globals/middleware/retry.middleware.d.ts +0 -21
- package/dist/globals/middleware/retry.middleware.js +0 -61
- package/dist/globals/middleware/retry.middleware.js.map +0 -1
- package/dist/globals/middleware/timeout.middleware.d.ts +0 -9
- package/dist/globals/middleware/timeout.middleware.js +0 -61
- package/dist/globals/middleware/timeout.middleware.js.map +0 -1
- package/dist/globals/resources/debug/debug.resource.d.ts +0 -7
- package/dist/globals/resources/debug/debug.resource.js +0 -29
- package/dist/globals/resources/debug/debug.resource.js.map +0 -1
- package/dist/globals/resources/debug/debug.tag.d.ts +0 -2
- package/dist/globals/resources/debug/debug.tag.js +0 -12
- package/dist/globals/resources/debug/debug.tag.js.map +0 -1
- package/dist/globals/resources/debug/debugConfig.resource.d.ts +0 -22
- package/dist/globals/resources/debug/debugConfig.resource.js +0 -20
- package/dist/globals/resources/debug/debugConfig.resource.js.map +0 -1
- package/dist/globals/resources/debug/executionTracker.middleware.d.ts +0 -50
- package/dist/globals/resources/debug/executionTracker.middleware.js +0 -78
- package/dist/globals/resources/debug/executionTracker.middleware.js.map +0 -1
- package/dist/globals/resources/debug/globalEvent.hook.d.ts +0 -27
- package/dist/globals/resources/debug/globalEvent.hook.js +0 -38
- package/dist/globals/resources/debug/globalEvent.hook.js.map +0 -1
- package/dist/globals/resources/debug/hook.hook.d.ts +0 -30
- package/dist/globals/resources/debug/hook.hook.js +0 -48
- package/dist/globals/resources/debug/hook.hook.js.map +0 -1
- package/dist/globals/resources/debug/index.d.ts +0 -6
- package/dist/globals/resources/debug/index.js +0 -23
- package/dist/globals/resources/debug/index.js.map +0 -1
- package/dist/globals/resources/debug/middleware.hook.d.ts +0 -30
- package/dist/globals/resources/debug/middleware.hook.js +0 -75
- package/dist/globals/resources/debug/middleware.hook.js.map +0 -1
- package/dist/globals/resources/debug/types.d.ts +0 -25
- package/dist/globals/resources/debug/types.js +0 -65
- package/dist/globals/resources/debug/types.js.map +0 -1
- package/dist/globals/resources/debug/utils.d.ts +0 -2
- package/dist/globals/resources/debug/utils.js +0 -13
- package/dist/globals/resources/debug/utils.js.map +0 -1
- package/dist/globals/resources/queue.resource.d.ts +0 -10
- package/dist/globals/resources/queue.resource.js +0 -31
- package/dist/globals/resources/queue.resource.js.map +0 -1
- package/dist/globals/types.d.ts +0 -1
- package/dist/globals/types.js +0 -18
- package/dist/globals/types.js.map +0 -1
- package/dist/index.js +0 -48
- package/dist/index.js.map +0 -1
- package/dist/models/DependencyProcessor.d.ts +0 -48
- package/dist/models/DependencyProcessor.js +0 -276
- package/dist/models/DependencyProcessor.js.map +0 -1
- package/dist/models/EventManager.d.ts +0 -153
- package/dist/models/EventManager.js +0 -421
- package/dist/models/EventManager.js.map +0 -1
- package/dist/models/LogPrinter.d.ts +0 -55
- package/dist/models/LogPrinter.js +0 -202
- package/dist/models/LogPrinter.js.map +0 -1
- package/dist/models/Logger.d.ts +0 -85
- package/dist/models/Logger.js +0 -194
- package/dist/models/Logger.js.map +0 -1
- package/dist/models/MiddlewareManager.d.ts +0 -86
- package/dist/models/MiddlewareManager.js +0 -391
- package/dist/models/MiddlewareManager.js.map +0 -1
- package/dist/models/OverrideManager.d.ts +0 -13
- package/dist/models/OverrideManager.js +0 -84
- package/dist/models/OverrideManager.js.map +0 -1
- package/dist/models/Queue.d.ts +0 -25
- package/dist/models/Queue.js +0 -56
- package/dist/models/Queue.js.map +0 -1
- package/dist/models/ResourceInitializer.d.ts +0 -20
- package/dist/models/ResourceInitializer.js +0 -34
- package/dist/models/ResourceInitializer.js.map +0 -1
- package/dist/models/RunResult.d.ts +0 -35
- package/dist/models/RunResult.js +0 -62
- package/dist/models/RunResult.js.map +0 -1
- package/dist/models/Semaphore.d.ts +0 -61
- package/dist/models/Semaphore.js +0 -164
- package/dist/models/Semaphore.js.map +0 -1
- package/dist/models/Store.d.ts +0 -56
- package/dist/models/Store.js +0 -209
- package/dist/models/Store.js.map +0 -1
- package/dist/models/StoreRegistry.d.ts +0 -43
- package/dist/models/StoreRegistry.js +0 -375
- package/dist/models/StoreRegistry.js.map +0 -1
- package/dist/models/StoreValidator.d.ts +0 -8
- package/dist/models/StoreValidator.js +0 -73
- package/dist/models/StoreValidator.js.map +0 -1
- package/dist/models/TaskRunner.d.ts +0 -27
- package/dist/models/TaskRunner.js +0 -53
- package/dist/models/TaskRunner.js.map +0 -1
- package/dist/models/UnhandledError.d.ts +0 -11
- package/dist/models/UnhandledError.js +0 -32
- package/dist/models/UnhandledError.js.map +0 -1
- package/dist/models/index.d.ts +0 -11
- package/dist/models/index.js +0 -28
- package/dist/models/index.js.map +0 -1
- package/dist/models/utils/findCircularDependencies.d.ts +0 -16
- package/dist/models/utils/findCircularDependencies.js +0 -45
- package/dist/models/utils/findCircularDependencies.js.map +0 -1
- package/dist/models/utils/safeStringify.d.ts +0 -3
- package/dist/models/utils/safeStringify.js +0 -45
- package/dist/models/utils/safeStringify.js.map +0 -1
- package/dist/platform/browser.d.ts +0 -15
- package/dist/platform/browser.js +0 -98
- package/dist/platform/browser.js.map +0 -1
- package/dist/platform/index.d.ts +0 -8
- package/dist/platform/index.js +0 -47
- package/dist/platform/index.js.map +0 -1
- package/dist/platform/node.d.ts +0 -11
- package/dist/platform/node.js +0 -45
- package/dist/platform/node.js.map +0 -1
- package/dist/platform/types.d.ts +0 -28
- package/dist/platform/types.js +0 -19
- package/dist/platform/types.js.map +0 -1
- package/dist/platform/universal.d.ts +0 -16
- package/dist/platform/universal.js +0 -57
- package/dist/platform/universal.js.map +0 -1
- package/dist/processHooks.d.ts +0 -2
- package/dist/processHooks.js +0 -79
- package/dist/processHooks.js.map +0 -1
- package/dist/run.d.ts +0 -14
- package/dist/run.js +0 -126
- package/dist/run.js.map +0 -1
- package/dist/testing.d.ts +0 -25
- package/dist/testing.js +0 -42
- package/dist/testing.js.map +0 -1
- package/dist/tools/getCallerFile.d.ts +0 -1
- package/dist/tools/getCallerFile.js +0 -30
- package/dist/tools/getCallerFile.js.map +0 -1
- package/dist/types/contracts.d.ts +0 -55
- package/dist/types/contracts.js +0 -4
- package/dist/types/contracts.js.map +0 -1
- package/dist/types/event.d.ts +0 -74
- package/dist/types/event.js +0 -17
- package/dist/types/event.js.map +0 -1
- package/dist/types/hook.d.ts +0 -23
- package/dist/types/hook.js +0 -4
- package/dist/types/hook.js.map +0 -1
- package/dist/types/meta.d.ts +0 -18
- package/dist/types/meta.js +0 -7
- package/dist/types/meta.js.map +0 -1
- package/dist/types/resource.d.ts +0 -84
- package/dist/types/resource.js +0 -4
- package/dist/types/resource.js.map +0 -1
- package/dist/types/resourceMiddleware.d.ts +0 -47
- package/dist/types/resourceMiddleware.js +0 -4
- package/dist/types/resourceMiddleware.js.map +0 -1
- package/dist/types/runner.d.ts +0 -55
- package/dist/types/runner.js +0 -3
- package/dist/types/runner.js.map +0 -1
- package/dist/types/storeTypes.d.ts +0 -40
- package/dist/types/storeTypes.js +0 -3
- package/dist/types/storeTypes.js.map +0 -1
- package/dist/types/symbols.d.ts +0 -30
- package/dist/types/symbols.js +0 -40
- package/dist/types/symbols.js.map +0 -1
- package/dist/types/tag.d.ts +0 -46
- package/dist/types/tag.js +0 -4
- package/dist/types/tag.js.map +0 -1
- package/dist/types/task.d.ts +0 -44
- package/dist/types/task.js +0 -4
- package/dist/types/task.js.map +0 -1
- package/dist/types/taskMiddleware.d.ts +0 -48
- package/dist/types/taskMiddleware.js +0 -4
- package/dist/types/taskMiddleware.js.map +0 -1
- package/dist/types/utilities.d.ts +0 -110
- package/dist/types/utilities.js +0 -19
- package/dist/types/utilities.js.map +0 -1
|
@@ -1,421 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
3
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
4
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
5
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
6
|
-
};
|
|
7
|
-
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
8
|
-
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
9
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
10
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
11
|
-
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
12
|
-
};
|
|
13
|
-
var _EventManager_isLocked;
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.EventManager = void 0;
|
|
16
|
-
const errors_1 = require("../errors");
|
|
17
|
-
const globalTags_1 = require("../globals/globalTags");
|
|
18
|
-
const platform_1 = require("../platform");
|
|
19
|
-
/**
|
|
20
|
-
* Default options for event handlers
|
|
21
|
-
*/
|
|
22
|
-
const HandlerOptionsDefaults = { order: 0 };
|
|
23
|
-
/**
|
|
24
|
-
* EventManager handles event emission, listener registration, and event processing.
|
|
25
|
-
* It supports both specific event listeners and global listeners that handle all events.
|
|
26
|
-
* Listeners are processed in order based on their priority.
|
|
27
|
-
*/
|
|
28
|
-
class EventManager {
|
|
29
|
-
constructor(options) {
|
|
30
|
-
// Core storage for event listeners
|
|
31
|
-
this.listeners = new Map();
|
|
32
|
-
this.globalListeners = [];
|
|
33
|
-
// Caching system for merged listeners to improve performance
|
|
34
|
-
this.cachedMergedListeners = new Map();
|
|
35
|
-
this.globalListenersCacheValid = true;
|
|
36
|
-
// Interceptors storage
|
|
37
|
-
this.emissionInterceptors = [];
|
|
38
|
-
this.hookInterceptors = [];
|
|
39
|
-
// Tracks the current emission chain to detect cycles
|
|
40
|
-
this.emissionStack = (0, platform_1.getPlatform)().createAsyncLocalStorage();
|
|
41
|
-
// Tracks currently executing hook id (if any)
|
|
42
|
-
this.currentHookIdContext = (0, platform_1.getPlatform)().createAsyncLocalStorage();
|
|
43
|
-
// Locking mechanism to prevent modifications after initialization
|
|
44
|
-
_EventManager_isLocked.set(this, false);
|
|
45
|
-
this.runtimeCycleDetection = options?.runtimeCycleDetection ?? true;
|
|
46
|
-
}
|
|
47
|
-
// ==================== PUBLIC API ====================
|
|
48
|
-
/**
|
|
49
|
-
* Gets the current lock status of the EventManager
|
|
50
|
-
*/
|
|
51
|
-
get isLocked() {
|
|
52
|
-
return __classPrivateFieldGet(this, _EventManager_isLocked, "f");
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Locks the EventManager, preventing any further modifications to listeners
|
|
56
|
-
*/
|
|
57
|
-
lock() {
|
|
58
|
-
__classPrivateFieldSet(this, _EventManager_isLocked, true, "f");
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Emits an event to all registered listeners for that event type.
|
|
62
|
-
* Listeners are processed in order of priority and can stop event propagation.
|
|
63
|
-
*
|
|
64
|
-
* @param eventDefinition - The event definition to emit
|
|
65
|
-
* @param data - The event payload data
|
|
66
|
-
* @param source - The source identifier of the event emitter
|
|
67
|
-
*/
|
|
68
|
-
async emit(eventDefinition, data, source) {
|
|
69
|
-
// Validate payload with schema if provided
|
|
70
|
-
if (eventDefinition.payloadSchema) {
|
|
71
|
-
try {
|
|
72
|
-
data = eventDefinition.payloadSchema.parse(data);
|
|
73
|
-
}
|
|
74
|
-
catch (error) {
|
|
75
|
-
throw new errors_1.ValidationError("Event payload", eventDefinition.id, error instanceof Error ? error : new Error(String(error)));
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
const frame = { id: eventDefinition.id, source };
|
|
79
|
-
const processEmission = async () => {
|
|
80
|
-
// Determine whether this emission should be excluded from global listeners
|
|
81
|
-
/* istanbul ignore next */
|
|
82
|
-
const pseudoForExclude = {
|
|
83
|
-
id: eventDefinition.id,
|
|
84
|
-
data,
|
|
85
|
-
timestamp: new Date(),
|
|
86
|
-
source,
|
|
87
|
-
meta: eventDefinition.meta || {},
|
|
88
|
-
stopPropagation: () => { },
|
|
89
|
-
isPropagationStopped: () => false,
|
|
90
|
-
tags: eventDefinition.tags,
|
|
91
|
-
};
|
|
92
|
-
const excludeFromGlobal = this.isExcludedFromGlobal(pseudoForExclude);
|
|
93
|
-
// Choose listeners: if globals are excluded, only use event-specific listeners
|
|
94
|
-
const allListeners = excludeFromGlobal
|
|
95
|
-
? this.listeners.get(eventDefinition.id) || []
|
|
96
|
-
: this.getCachedMergedListeners(eventDefinition.id);
|
|
97
|
-
let propagationStopped = false;
|
|
98
|
-
const event = {
|
|
99
|
-
id: eventDefinition.id,
|
|
100
|
-
data,
|
|
101
|
-
timestamp: new Date(),
|
|
102
|
-
source,
|
|
103
|
-
meta: eventDefinition.meta || {},
|
|
104
|
-
stopPropagation: () => {
|
|
105
|
-
propagationStopped = true;
|
|
106
|
-
},
|
|
107
|
-
isPropagationStopped: () => propagationStopped,
|
|
108
|
-
tags: eventDefinition.tags,
|
|
109
|
-
};
|
|
110
|
-
// Create the base emission function
|
|
111
|
-
const baseEmit = async (eventToEmit) => {
|
|
112
|
-
if (allListeners.length === 0) {
|
|
113
|
-
return;
|
|
114
|
-
}
|
|
115
|
-
const excludeFromGlobal = this.isExcludedFromGlobal(eventToEmit);
|
|
116
|
-
for (const listener of allListeners) {
|
|
117
|
-
if (propagationStopped) {
|
|
118
|
-
break;
|
|
119
|
-
}
|
|
120
|
-
// Skip handlers that identify themselves as the source of this event
|
|
121
|
-
// (prevents a listener from re-invoking itself).
|
|
122
|
-
if (listener.id && listener.id === eventToEmit.source) {
|
|
123
|
-
continue;
|
|
124
|
-
}
|
|
125
|
-
if (!listener.filter || listener.filter(eventToEmit)) {
|
|
126
|
-
await listener.handler(eventToEmit);
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
};
|
|
130
|
-
// Apply emission interceptors (last added runs first)
|
|
131
|
-
let emitWithInterceptors = baseEmit;
|
|
132
|
-
// Reverse the interceptors so the last added runs first
|
|
133
|
-
const reversedInterceptors = [...this.emissionInterceptors].reverse();
|
|
134
|
-
for (const interceptor of reversedInterceptors) {
|
|
135
|
-
const nextFunction = emitWithInterceptors;
|
|
136
|
-
emitWithInterceptors = async (eventToEmit) => interceptor(nextFunction, eventToEmit);
|
|
137
|
-
}
|
|
138
|
-
// Execute the emission with interceptors
|
|
139
|
-
await emitWithInterceptors(event);
|
|
140
|
-
};
|
|
141
|
-
if (this.runtimeCycleDetection) {
|
|
142
|
-
// Detect re-entrant event cycles: same event id appearing in the current chain
|
|
143
|
-
const currentStack = this.emissionStack.getStore();
|
|
144
|
-
if (currentStack) {
|
|
145
|
-
const cycleStart = currentStack.findIndex((f) => f.id === frame.id);
|
|
146
|
-
if (cycleStart !== -1) {
|
|
147
|
-
const top = currentStack[currentStack.length - 1];
|
|
148
|
-
const currentHookId = this.currentHookIdContext.getStore();
|
|
149
|
-
const safeReEmitBySameHook = top.id === frame.id && currentHookId && currentHookId === source;
|
|
150
|
-
if (!safeReEmitBySameHook) {
|
|
151
|
-
throw new errors_1.EventCycleError([
|
|
152
|
-
...currentStack.slice(cycleStart),
|
|
153
|
-
frame,
|
|
154
|
-
]);
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
const nextStack = currentStack ? [...currentStack, frame] : [frame];
|
|
159
|
-
await this.emissionStack.run(nextStack, processEmission);
|
|
160
|
-
}
|
|
161
|
-
else {
|
|
162
|
-
// Fast path without AsyncLocalStorage context tracking
|
|
163
|
-
await processEmission();
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
/**
|
|
167
|
-
* Registers an event listener for specific event(s).
|
|
168
|
-
* Listeners are ordered by priority and executed in ascending order.
|
|
169
|
-
*
|
|
170
|
-
* @param event - The event definition(s) to listen for
|
|
171
|
-
* @param handler - The callback function to handle the event
|
|
172
|
-
* @param options - Configuration options for the listener
|
|
173
|
-
*/
|
|
174
|
-
addListener(event, handler, options = HandlerOptionsDefaults) {
|
|
175
|
-
this.checkLock();
|
|
176
|
-
const newListener = {
|
|
177
|
-
handler,
|
|
178
|
-
order: options.order || 0,
|
|
179
|
-
filter: options.filter,
|
|
180
|
-
id: options.id,
|
|
181
|
-
isGlobal: false,
|
|
182
|
-
};
|
|
183
|
-
if (Array.isArray(event)) {
|
|
184
|
-
event.forEach((id) => this.addListener(id, handler, options));
|
|
185
|
-
}
|
|
186
|
-
else {
|
|
187
|
-
const eventId = event.id;
|
|
188
|
-
const listeners = this.listeners.get(eventId);
|
|
189
|
-
if (listeners) {
|
|
190
|
-
this.insertListener(listeners, newListener);
|
|
191
|
-
}
|
|
192
|
-
else {
|
|
193
|
-
this.listeners.set(eventId, [newListener]);
|
|
194
|
-
}
|
|
195
|
-
this.invalidateCache(eventId);
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
/**
|
|
199
|
-
* Registers a global event listener that handles all events.
|
|
200
|
-
* Global listeners are mixed with specific listeners and ordered by priority.
|
|
201
|
-
*
|
|
202
|
-
* @param handler - The callback function to handle events
|
|
203
|
-
* @param options - Configuration options for the listener
|
|
204
|
-
*/
|
|
205
|
-
addGlobalListener(handler, options = HandlerOptionsDefaults) {
|
|
206
|
-
this.checkLock();
|
|
207
|
-
const newListener = {
|
|
208
|
-
handler,
|
|
209
|
-
order: options.order || 0,
|
|
210
|
-
filter: options.filter,
|
|
211
|
-
id: options.id,
|
|
212
|
-
isGlobal: true,
|
|
213
|
-
};
|
|
214
|
-
this.insertListener(this.globalListeners, newListener);
|
|
215
|
-
this.invalidateCache();
|
|
216
|
-
}
|
|
217
|
-
/**
|
|
218
|
-
* Checks if there are any listeners registered for the given event
|
|
219
|
-
*
|
|
220
|
-
* @param eventDefinition - The event definition to check
|
|
221
|
-
* @returns true if listeners exist, false otherwise
|
|
222
|
-
*/
|
|
223
|
-
hasListeners(eventDefinition) {
|
|
224
|
-
const eventListeners = this.listeners.get(eventDefinition.id) || [];
|
|
225
|
-
if (eventListeners.length > 0) {
|
|
226
|
-
return true;
|
|
227
|
-
}
|
|
228
|
-
if (this.globalListeners.length === 0) {
|
|
229
|
-
return false;
|
|
230
|
-
}
|
|
231
|
-
// If the event definition carries the tag that excludes it from global
|
|
232
|
-
// listeners, report no listeners (since globals would be skipped at emit).
|
|
233
|
-
/* istanbul ignore next */
|
|
234
|
-
const pseudoEmission = {
|
|
235
|
-
id: eventDefinition.id,
|
|
236
|
-
data: undefined,
|
|
237
|
-
timestamp: new Date(),
|
|
238
|
-
source: "",
|
|
239
|
-
meta: eventDefinition.meta || {},
|
|
240
|
-
stopPropagation: () => { },
|
|
241
|
-
isPropagationStopped: () => false,
|
|
242
|
-
tags: eventDefinition.tags,
|
|
243
|
-
};
|
|
244
|
-
if (this.isExcludedFromGlobal(pseudoEmission)) {
|
|
245
|
-
return false;
|
|
246
|
-
}
|
|
247
|
-
return true;
|
|
248
|
-
}
|
|
249
|
-
/**
|
|
250
|
-
* Adds an interceptor for all event emissions
|
|
251
|
-
* Interceptors are executed in the order they are added, with the ability to
|
|
252
|
-
* modify, log, or prevent event emissions
|
|
253
|
-
*
|
|
254
|
-
* @param interceptor - The interceptor function to add
|
|
255
|
-
*/
|
|
256
|
-
intercept(interceptor) {
|
|
257
|
-
this.checkLock();
|
|
258
|
-
this.emissionInterceptors.push(interceptor);
|
|
259
|
-
}
|
|
260
|
-
/**
|
|
261
|
-
* Adds an interceptor for hook execution
|
|
262
|
-
* Interceptors are executed in the order they are added, with the ability to
|
|
263
|
-
* modify, log, or prevent hook execution
|
|
264
|
-
*
|
|
265
|
-
* @param interceptor - The interceptor function to add
|
|
266
|
-
*/
|
|
267
|
-
interceptHook(interceptor) {
|
|
268
|
-
this.checkLock();
|
|
269
|
-
this.hookInterceptors.push(interceptor);
|
|
270
|
-
}
|
|
271
|
-
/**
|
|
272
|
-
* Executes a hook with all registered hook interceptors applied
|
|
273
|
-
* This method should be used by TaskRunner when executing hooks
|
|
274
|
-
*
|
|
275
|
-
* @param hook - The hook to execute
|
|
276
|
-
* @param event - The event that triggered the hook
|
|
277
|
-
* @param computedDependencies - The computed dependencies for the hook
|
|
278
|
-
* @returns Promise resolving to the hook execution result
|
|
279
|
-
*/
|
|
280
|
-
async executeHookWithInterceptors(hook, event, computedDependencies) {
|
|
281
|
-
// Base hook execution function
|
|
282
|
-
const baseExecute = async (hookToExecute, eventForHook) => {
|
|
283
|
-
try {
|
|
284
|
-
const result = await hookToExecute.run(eventForHook, computedDependencies);
|
|
285
|
-
return result;
|
|
286
|
-
}
|
|
287
|
-
catch (err) {
|
|
288
|
-
throw err;
|
|
289
|
-
}
|
|
290
|
-
};
|
|
291
|
-
// Apply hook interceptors (last added runs first)
|
|
292
|
-
let executeWithInterceptors = baseExecute;
|
|
293
|
-
// Reverse the interceptors so the last added runs first
|
|
294
|
-
const reversedInterceptors = [...this.hookInterceptors].reverse();
|
|
295
|
-
for (const interceptor of reversedInterceptors) {
|
|
296
|
-
const nextFunction = executeWithInterceptors;
|
|
297
|
-
executeWithInterceptors = async (hookToExecute, eventForHook) => interceptor(nextFunction, hookToExecute, eventForHook);
|
|
298
|
-
}
|
|
299
|
-
// Execute the hook with interceptors within current hook context
|
|
300
|
-
if (this.runtimeCycleDetection) {
|
|
301
|
-
return await this.currentHookIdContext.run(hook.id, async () => await executeWithInterceptors(hook, event));
|
|
302
|
-
}
|
|
303
|
-
else {
|
|
304
|
-
return await executeWithInterceptors(hook, event);
|
|
305
|
-
}
|
|
306
|
-
}
|
|
307
|
-
// ==================== PRIVATE METHODS ====================
|
|
308
|
-
/**
|
|
309
|
-
* Throws an error if the EventManager is locked
|
|
310
|
-
*/
|
|
311
|
-
checkLock() {
|
|
312
|
-
if (__classPrivateFieldGet(this, _EventManager_isLocked, "f")) {
|
|
313
|
-
throw new errors_1.LockedError("EventManager");
|
|
314
|
-
}
|
|
315
|
-
}
|
|
316
|
-
/**
|
|
317
|
-
* Merges two sorted arrays of listeners while maintaining order.
|
|
318
|
-
* Used to combine event-specific listeners with global listeners.
|
|
319
|
-
*
|
|
320
|
-
* @param a - First array of listeners
|
|
321
|
-
* @param b - Second array of listeners
|
|
322
|
-
* @returns Merged and sorted array of listeners
|
|
323
|
-
*/
|
|
324
|
-
mergeSortedListeners(a, b) {
|
|
325
|
-
const result = [];
|
|
326
|
-
let i = 0, j = 0;
|
|
327
|
-
while (i < a.length && j < b.length) {
|
|
328
|
-
if (a[i].order <= b[j].order) {
|
|
329
|
-
result.push(a[i++]);
|
|
330
|
-
}
|
|
331
|
-
else {
|
|
332
|
-
result.push(b[j++]);
|
|
333
|
-
}
|
|
334
|
-
}
|
|
335
|
-
while (i < a.length)
|
|
336
|
-
result.push(a[i++]);
|
|
337
|
-
while (j < b.length)
|
|
338
|
-
result.push(b[j++]);
|
|
339
|
-
return result;
|
|
340
|
-
}
|
|
341
|
-
/**
|
|
342
|
-
* Inserts a new listener into a sorted array using binary search.
|
|
343
|
-
* Maintains order based on listener priority.
|
|
344
|
-
*
|
|
345
|
-
* @param listeners - Array to insert into
|
|
346
|
-
* @param newListener - Listener to insert
|
|
347
|
-
*/
|
|
348
|
-
insertListener(listeners, newListener) {
|
|
349
|
-
let low = 0;
|
|
350
|
-
let high = listeners.length;
|
|
351
|
-
while (low < high) {
|
|
352
|
-
const mid = (low + high) >>> 1;
|
|
353
|
-
if (listeners[mid].order < newListener.order) {
|
|
354
|
-
low = mid + 1;
|
|
355
|
-
}
|
|
356
|
-
else {
|
|
357
|
-
high = mid;
|
|
358
|
-
}
|
|
359
|
-
}
|
|
360
|
-
listeners.splice(low, 0, newListener);
|
|
361
|
-
}
|
|
362
|
-
/**
|
|
363
|
-
* Returns true if the given emission carries the tag that marks
|
|
364
|
-
* it as excluded from global ("*") listeners.
|
|
365
|
-
*
|
|
366
|
-
* @param event - The event emission to check
|
|
367
|
-
* @returns true if event should exclude global listeners
|
|
368
|
-
*/
|
|
369
|
-
isExcludedFromGlobal(event) {
|
|
370
|
-
return globalTags_1.globalTags.excludeFromGlobalHooks.exists(event);
|
|
371
|
-
}
|
|
372
|
-
/**
|
|
373
|
-
* Retrieves cached merged listeners for an event, or creates them if not cached.
|
|
374
|
-
* Combines event-specific listeners with global listeners and sorts them by priority.
|
|
375
|
-
*
|
|
376
|
-
* @param eventId - The event ID to get listeners for
|
|
377
|
-
* @returns Array of merged listeners sorted by priority
|
|
378
|
-
*/
|
|
379
|
-
getCachedMergedListeners(eventId) {
|
|
380
|
-
if (!this.globalListenersCacheValid) {
|
|
381
|
-
this.cachedMergedListeners.clear();
|
|
382
|
-
this.globalListenersCacheValid = true;
|
|
383
|
-
}
|
|
384
|
-
let cached = this.cachedMergedListeners.get(eventId);
|
|
385
|
-
if (!cached) {
|
|
386
|
-
const eventListeners = this.listeners.get(eventId) || [];
|
|
387
|
-
if (eventListeners.length === 0 && this.globalListeners.length === 0) {
|
|
388
|
-
cached = [];
|
|
389
|
-
}
|
|
390
|
-
else if (eventListeners.length === 0) {
|
|
391
|
-
cached = this.globalListeners;
|
|
392
|
-
}
|
|
393
|
-
else if (this.globalListeners.length === 0) {
|
|
394
|
-
cached = eventListeners;
|
|
395
|
-
}
|
|
396
|
-
else {
|
|
397
|
-
cached = this.mergeSortedListeners(eventListeners, this.globalListeners);
|
|
398
|
-
}
|
|
399
|
-
this.cachedMergedListeners.set(eventId, cached);
|
|
400
|
-
}
|
|
401
|
-
return cached;
|
|
402
|
-
}
|
|
403
|
-
/**
|
|
404
|
-
* Invalidates the cached merged listeners.
|
|
405
|
-
* If eventId is provided, only invalidates cache for that specific event.
|
|
406
|
-
* Otherwise, invalidates the global cache.
|
|
407
|
-
*
|
|
408
|
-
* @param eventId - Optional specific event ID to invalidate
|
|
409
|
-
*/
|
|
410
|
-
invalidateCache(eventId) {
|
|
411
|
-
if (eventId) {
|
|
412
|
-
this.cachedMergedListeners.delete(eventId);
|
|
413
|
-
}
|
|
414
|
-
else {
|
|
415
|
-
this.globalListenersCacheValid = false;
|
|
416
|
-
}
|
|
417
|
-
}
|
|
418
|
-
}
|
|
419
|
-
exports.EventManager = EventManager;
|
|
420
|
-
_EventManager_isLocked = new WeakMap();
|
|
421
|
-
//# sourceMappingURL=EventManager.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EventManager.js","sourceRoot":"","sources":["../../src/models/EventManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
export type PrintStrategy = "pretty" | "plain" | "json" | "json_pretty";
|
|
2
|
-
export type LogLevels = "trace" | "debug" | "info" | "warn" | "error" | "critical";
|
|
3
|
-
export interface PrintableLog {
|
|
4
|
-
level: LogLevels;
|
|
5
|
-
source?: string;
|
|
6
|
-
message: any;
|
|
7
|
-
timestamp: Date;
|
|
8
|
-
error?: {
|
|
9
|
-
name: string;
|
|
10
|
-
message: string;
|
|
11
|
-
stack?: string;
|
|
12
|
-
};
|
|
13
|
-
data?: Record<string, any>;
|
|
14
|
-
context?: Record<string, any>;
|
|
15
|
-
}
|
|
16
|
-
export type ColorTheme = {
|
|
17
|
-
trace: string;
|
|
18
|
-
debug: string;
|
|
19
|
-
info: string;
|
|
20
|
-
warn: string;
|
|
21
|
-
error: string;
|
|
22
|
-
critical: string;
|
|
23
|
-
reset: string;
|
|
24
|
-
bold: string;
|
|
25
|
-
dim: string;
|
|
26
|
-
blue: string;
|
|
27
|
-
cyan: string;
|
|
28
|
-
gray: string;
|
|
29
|
-
};
|
|
30
|
-
export declare class LogPrinter {
|
|
31
|
-
private strategy;
|
|
32
|
-
private colors;
|
|
33
|
-
constructor(options: {
|
|
34
|
-
strategy: PrintStrategy;
|
|
35
|
-
useColors: boolean;
|
|
36
|
-
colorTheme?: Partial<ColorTheme>;
|
|
37
|
-
});
|
|
38
|
-
print(log: PrintableLog): void;
|
|
39
|
-
private pickWriter;
|
|
40
|
-
private formatTime;
|
|
41
|
-
private formatLevel;
|
|
42
|
-
private formatSource;
|
|
43
|
-
private formatMessage;
|
|
44
|
-
private formatError;
|
|
45
|
-
private formatData;
|
|
46
|
-
private formatContext;
|
|
47
|
-
private normalizeForJson;
|
|
48
|
-
private static NO_COLORS;
|
|
49
|
-
private static writers;
|
|
50
|
-
static setWriters(writers: Partial<{
|
|
51
|
-
log: (msg: any) => void;
|
|
52
|
-
error?: (msg: any) => void;
|
|
53
|
-
}>): void;
|
|
54
|
-
static resetWriters(): void;
|
|
55
|
-
}
|