@morojs/moro 1.0.0 → 1.0.1
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/README.md +1 -1
- package/dist/core/config/index.d.ts +5 -5
- package/dist/core/config/index.js +1 -1
- package/dist/core/config/index.js.map +1 -1
- package/dist/core/config/loader.d.ts +1 -1
- package/dist/core/config/loader.js +58 -82
- package/dist/core/config/loader.js.map +1 -1
- package/dist/core/config/schema.d.ts +1 -1
- package/dist/core/config/schema.js +52 -111
- package/dist/core/config/schema.js.map +1 -1
- package/dist/core/config/utils.d.ts +2 -2
- package/dist/core/config/utils.js +18 -18
- package/dist/core/config/utils.js.map +1 -1
- package/dist/core/database/adapters/drizzle.d.ts +1 -1
- package/dist/core/database/adapters/drizzle.js +39 -55
- package/dist/core/database/adapters/drizzle.js.map +1 -1
- package/dist/core/database/adapters/index.d.ts +7 -7
- package/dist/core/database/adapters/index.js +11 -11
- package/dist/core/database/adapters/index.js.map +1 -1
- package/dist/core/database/adapters/mongodb.d.ts +1 -1
- package/dist/core/database/adapters/mongodb.js +19 -23
- package/dist/core/database/adapters/mongodb.js.map +1 -1
- package/dist/core/database/adapters/mysql.d.ts +1 -1
- package/dist/core/database/adapters/mysql.js +31 -27
- package/dist/core/database/adapters/mysql.js.map +1 -1
- package/dist/core/database/adapters/postgresql.d.ts +1 -1
- package/dist/core/database/adapters/postgresql.js +27 -35
- package/dist/core/database/adapters/postgresql.js.map +1 -1
- package/dist/core/database/adapters/redis.d.ts +1 -1
- package/dist/core/database/adapters/redis.js +24 -24
- package/dist/core/database/adapters/redis.js.map +1 -1
- package/dist/core/database/adapters/sqlite.d.ts +1 -1
- package/dist/core/database/adapters/sqlite.js +36 -36
- package/dist/core/database/adapters/sqlite.js.map +1 -1
- package/dist/core/database/index.d.ts +2 -2
- package/dist/core/docs/index.d.ts +7 -7
- package/dist/core/docs/index.js +13 -15
- package/dist/core/docs/index.js.map +1 -1
- package/dist/core/docs/openapi-generator.d.ts +5 -5
- package/dist/core/docs/openapi-generator.js +93 -94
- package/dist/core/docs/openapi-generator.js.map +1 -1
- package/dist/core/docs/simple-docs.d.ts +1 -1
- package/dist/core/docs/simple-docs.js +25 -28
- package/dist/core/docs/simple-docs.js.map +1 -1
- package/dist/core/docs/swagger-ui.d.ts +2 -2
- package/dist/core/docs/swagger-ui.js +46 -51
- package/dist/core/docs/swagger-ui.js.map +1 -1
- package/dist/core/docs/zod-to-openapi.d.ts +1 -1
- package/dist/core/docs/zod-to-openapi.js +115 -125
- package/dist/core/docs/zod-to-openapi.js.map +1 -1
- package/dist/core/events/event-bus.d.ts +1 -1
- package/dist/core/events/event-bus.js +15 -21
- package/dist/core/events/event-bus.js.map +1 -1
- package/dist/core/events/index.d.ts +2 -2
- package/dist/core/framework.d.ts +5 -5
- package/dist/core/framework.js +55 -60
- package/dist/core/framework.js.map +1 -1
- package/dist/core/http/http-server.d.ts +2 -2
- package/dist/core/http/http-server.js +228 -261
- package/dist/core/http/http-server.js.map +1 -1
- package/dist/core/http/index.d.ts +3 -3
- package/dist/core/http/router.d.ts +1 -1
- package/dist/core/http/router.js +15 -17
- package/dist/core/http/router.js.map +1 -1
- package/dist/core/logger/filters.d.ts +1 -1
- package/dist/core/logger/filters.js +16 -16
- package/dist/core/logger/filters.js.map +1 -1
- package/dist/core/logger/index.d.ts +3 -3
- package/dist/core/logger/logger.d.ts +1 -1
- package/dist/core/logger/logger.js +48 -59
- package/dist/core/logger/logger.js.map +1 -1
- package/dist/core/logger/outputs.d.ts +4 -4
- package/dist/core/logger/outputs.js +16 -20
- package/dist/core/logger/outputs.js.map +1 -1
- package/dist/core/middleware/built-in/adapters/cache/file.d.ts +1 -1
- package/dist/core/middleware/built-in/adapters/cache/file.js +19 -19
- package/dist/core/middleware/built-in/adapters/cache/file.js.map +1 -1
- package/dist/core/middleware/built-in/adapters/cache/index.d.ts +4 -4
- package/dist/core/middleware/built-in/adapters/cache/index.js +3 -3
- package/dist/core/middleware/built-in/adapters/cache/index.js.map +1 -1
- package/dist/core/middleware/built-in/adapters/cache/memory.d.ts +1 -1
- package/dist/core/middleware/built-in/adapters/cache/memory.js +5 -5
- package/dist/core/middleware/built-in/adapters/cache/memory.js.map +1 -1
- package/dist/core/middleware/built-in/adapters/cache/redis.d.ts +1 -1
- package/dist/core/middleware/built-in/adapters/cache/redis.js +18 -18
- package/dist/core/middleware/built-in/adapters/cache/redis.js.map +1 -1
- package/dist/core/middleware/built-in/adapters/cdn/azure.d.ts +1 -1
- package/dist/core/middleware/built-in/adapters/cdn/azure.js +8 -8
- package/dist/core/middleware/built-in/adapters/cdn/azure.js.map +1 -1
- package/dist/core/middleware/built-in/adapters/cdn/cloudflare.d.ts +1 -1
- package/dist/core/middleware/built-in/adapters/cdn/cloudflare.js +14 -14
- package/dist/core/middleware/built-in/adapters/cdn/cloudflare.js.map +1 -1
- package/dist/core/middleware/built-in/adapters/cdn/cloudfront.d.ts +1 -1
- package/dist/core/middleware/built-in/adapters/cdn/cloudfront.js +13 -15
- package/dist/core/middleware/built-in/adapters/cdn/cloudfront.js.map +1 -1
- package/dist/core/middleware/built-in/adapters/cdn/index.d.ts +4 -4
- package/dist/core/middleware/built-in/adapters/cdn/index.js +3 -3
- package/dist/core/middleware/built-in/adapters/index.d.ts +4 -4
- package/dist/core/middleware/built-in/auth.d.ts +1 -1
- package/dist/core/middleware/built-in/auth.js +14 -14
- package/dist/core/middleware/built-in/cache.d.ts +2 -2
- package/dist/core/middleware/built-in/cache.js +43 -45
- package/dist/core/middleware/built-in/cache.js.map +1 -1
- package/dist/core/middleware/built-in/cdn.d.ts +2 -2
- package/dist/core/middleware/built-in/cdn.js +27 -29
- package/dist/core/middleware/built-in/cdn.js.map +1 -1
- package/dist/core/middleware/built-in/cookie.d.ts +2 -2
- package/dist/core/middleware/built-in/cookie.js +17 -17
- package/dist/core/middleware/built-in/cookie.js.map +1 -1
- package/dist/core/middleware/built-in/cors.d.ts +1 -1
- package/dist/core/middleware/built-in/cors.js +13 -13
- package/dist/core/middleware/built-in/csp.d.ts +1 -1
- package/dist/core/middleware/built-in/csp.js +22 -25
- package/dist/core/middleware/built-in/csp.js.map +1 -1
- package/dist/core/middleware/built-in/csrf.d.ts +1 -1
- package/dist/core/middleware/built-in/csrf.js +21 -24
- package/dist/core/middleware/built-in/csrf.js.map +1 -1
- package/dist/core/middleware/built-in/error-tracker.js +2 -2
- package/dist/core/middleware/built-in/index.d.ts +14 -14
- package/dist/core/middleware/built-in/performance-monitor.js +2 -2
- package/dist/core/middleware/built-in/rate-limit.d.ts +1 -1
- package/dist/core/middleware/built-in/rate-limit.js +12 -12
- package/dist/core/middleware/built-in/request-logger.js.map +1 -1
- package/dist/core/middleware/built-in/session.d.ts +5 -5
- package/dist/core/middleware/built-in/session.js +35 -38
- package/dist/core/middleware/built-in/session.js.map +1 -1
- package/dist/core/middleware/built-in/sse.d.ts +1 -1
- package/dist/core/middleware/built-in/sse.js +20 -22
- package/dist/core/middleware/built-in/sse.js.map +1 -1
- package/dist/core/middleware/built-in/validation.d.ts +1 -1
- package/dist/core/middleware/built-in/validation.js +13 -13
- package/dist/core/middleware/index.d.ts +5 -5
- package/dist/core/middleware/index.js +16 -16
- package/dist/core/middleware/index.js.map +1 -1
- package/dist/core/modules/auto-discovery.d.ts +2 -2
- package/dist/core/modules/auto-discovery.js +12 -13
- package/dist/core/modules/auto-discovery.js.map +1 -1
- package/dist/core/modules/index.d.ts +2 -2
- package/dist/core/modules/index.js.map +1 -1
- package/dist/core/modules/modules.d.ts +3 -3
- package/dist/core/modules/modules.js +3 -6
- package/dist/core/modules/modules.js.map +1 -1
- package/dist/core/networking/index.d.ts +2 -2
- package/dist/core/networking/index.js.map +1 -1
- package/dist/core/networking/service-discovery.d.ts +2 -2
- package/dist/core/networking/service-discovery.js +27 -27
- package/dist/core/networking/service-discovery.js.map +1 -1
- package/dist/core/networking/websocket-manager.d.ts +3 -3
- package/dist/core/networking/websocket-manager.js +15 -16
- package/dist/core/networking/websocket-manager.js.map +1 -1
- package/dist/core/routing/app-integration.d.ts +2 -2
- package/dist/core/routing/app-integration.js +13 -13
- package/dist/core/routing/app-integration.js.map +1 -1
- package/dist/core/routing/index.d.ts +3 -3
- package/dist/core/routing/index.js +43 -52
- package/dist/core/routing/index.js.map +1 -1
- package/dist/core/runtime/aws-lambda-adapter.d.ts +3 -3
- package/dist/core/runtime/aws-lambda-adapter.js +14 -16
- package/dist/core/runtime/aws-lambda-adapter.js.map +1 -1
- package/dist/core/runtime/base-adapter.d.ts +2 -2
- package/dist/core/runtime/base-adapter.js +11 -12
- package/dist/core/runtime/base-adapter.js.map +1 -1
- package/dist/core/runtime/cloudflare-workers-adapter.d.ts +3 -3
- package/dist/core/runtime/cloudflare-workers-adapter.js +20 -21
- package/dist/core/runtime/cloudflare-workers-adapter.js.map +1 -1
- package/dist/core/runtime/index.d.ts +9 -9
- package/dist/core/runtime/index.js +4 -4
- package/dist/core/runtime/index.js.map +1 -1
- package/dist/core/runtime/node-adapter.d.ts +5 -5
- package/dist/core/runtime/node-adapter.js +35 -35
- package/dist/core/runtime/node-adapter.js.map +1 -1
- package/dist/core/runtime/vercel-edge-adapter.d.ts +3 -3
- package/dist/core/runtime/vercel-edge-adapter.js +12 -15
- package/dist/core/runtime/vercel-edge-adapter.js.map +1 -1
- package/dist/core/utilities/circuit-breaker.js +6 -6
- package/dist/core/utilities/container.d.ts +1 -1
- package/dist/core/utilities/container.js +17 -22
- package/dist/core/utilities/container.js.map +1 -1
- package/dist/core/utilities/hooks.d.ts +3 -3
- package/dist/core/utilities/hooks.js +11 -11
- package/dist/core/utilities/hooks.js.map +1 -1
- package/dist/core/utilities/index.d.ts +4 -4
- package/dist/core/validation/index.d.ts +3 -3
- package/dist/core/validation/index.js +15 -15
- package/dist/core/validation/index.js.map +1 -1
- package/dist/index.d.ts +31 -30
- package/dist/index.js +28 -1
- package/dist/index.js.map +1 -1
- package/dist/moro.d.ts +14 -14
- package/dist/moro.js +79 -88
- package/dist/moro.js.map +1 -1
- package/dist/types/cache.d.ts +1 -1
- package/dist/types/core.d.ts +2 -2
- package/dist/types/events.d.ts +19 -19
- package/dist/types/hooks.d.ts +1 -1
- package/dist/types/http.d.ts +2 -2
- package/dist/types/logger.d.ts +3 -3
- package/dist/types/module.d.ts +2 -2
- package/dist/types/runtime.d.ts +2 -2
- package/dist/types/session.d.ts +4 -4
- package/package.json +180 -164
- package/src/core/config/index.ts +7 -9
- package/src/core/config/loader.ts +86 -158
- package/src/core/config/schema.ts +59 -122
- package/src/core/config/utils.ts +27 -45
- package/src/core/database/adapters/drizzle.ts +53 -75
- package/src/core/database/adapters/index.ts +26 -29
- package/src/core/database/adapters/mongodb.ts +31 -54
- package/src/core/database/adapters/mysql.ts +40 -50
- package/src/core/database/adapters/postgresql.ts +32 -42
- package/src/core/database/adapters/redis.ts +31 -36
- package/src/core/database/adapters/sqlite.ts +43 -51
- package/src/core/database/index.ts +2 -2
- package/src/core/docs/index.ts +25 -39
- package/src/core/docs/openapi-generator.ts +104 -117
- package/src/core/docs/simple-docs.ts +29 -39
- package/src/core/docs/swagger-ui.ts +57 -76
- package/src/core/docs/zod-to-openapi.ts +121 -153
- package/src/core/events/event-bus.ts +22 -45
- package/src/core/events/index.ts +2 -2
- package/src/core/framework.ts +119 -197
- package/src/core/http/http-server.ts +260 -360
- package/src/core/http/index.ts +3 -8
- package/src/core/http/router.ts +19 -31
- package/src/core/logger/filters.ts +19 -22
- package/src/core/logger/index.ts +3 -3
- package/src/core/logger/logger.ts +59 -100
- package/src/core/logger/outputs.ts +23 -27
- package/src/core/middleware/built-in/adapters/cache/file.ts +21 -23
- package/src/core/middleware/built-in/adapters/cache/index.ts +11 -14
- package/src/core/middleware/built-in/adapters/cache/memory.ts +7 -7
- package/src/core/middleware/built-in/adapters/cache/redis.ts +21 -24
- package/src/core/middleware/built-in/adapters/cdn/azure.ts +10 -18
- package/src/core/middleware/built-in/adapters/cdn/cloudflare.ts +19 -36
- package/src/core/middleware/built-in/adapters/cdn/cloudfront.ts +17 -26
- package/src/core/middleware/built-in/adapters/cdn/index.ts +10 -10
- package/src/core/middleware/built-in/adapters/index.ts +4 -4
- package/src/core/middleware/built-in/auth.ts +16 -16
- package/src/core/middleware/built-in/cache.ts +50 -67
- package/src/core/middleware/built-in/cdn.ts +34 -61
- package/src/core/middleware/built-in/cookie.ts +23 -28
- package/src/core/middleware/built-in/cors.ts +17 -17
- package/src/core/middleware/built-in/csp.ts +25 -31
- package/src/core/middleware/built-in/csrf.ts +24 -29
- package/src/core/middleware/built-in/error-tracker.ts +3 -3
- package/src/core/middleware/built-in/index.ts +28 -28
- package/src/core/middleware/built-in/performance-monitor.ts +4 -4
- package/src/core/middleware/built-in/rate-limit.ts +15 -15
- package/src/core/middleware/built-in/request-logger.ts +1 -3
- package/src/core/middleware/built-in/session.ts +47 -70
- package/src/core/middleware/built-in/sse.ts +23 -28
- package/src/core/middleware/built-in/validation.ts +15 -15
- package/src/core/middleware/index.ts +26 -37
- package/src/core/modules/auto-discovery.ts +21 -31
- package/src/core/modules/index.ts +2 -5
- package/src/core/modules/modules.ts +11 -20
- package/src/core/networking/index.ts +2 -6
- package/src/core/networking/service-discovery.ts +41 -61
- package/src/core/networking/websocket-manager.ts +27 -36
- package/src/core/routing/app-integration.ts +19 -32
- package/src/core/routing/index.ts +57 -88
- package/src/core/runtime/aws-lambda-adapter.ts +20 -30
- package/src/core/runtime/base-adapter.ts +17 -27
- package/src/core/runtime/cloudflare-workers-adapter.ts +28 -42
- package/src/core/runtime/index.ts +21 -33
- package/src/core/runtime/node-adapter.ts +59 -73
- package/src/core/runtime/vercel-edge-adapter.ts +18 -29
- package/src/core/utilities/circuit-breaker.ts +7 -7
- package/src/core/utilities/container.ts +52 -89
- package/src/core/utilities/hooks.ts +17 -23
- package/src/core/utilities/index.ts +4 -4
- package/src/core/validation/index.ts +25 -51
- package/src/index.ts +58 -60
- package/src/moro.ts +119 -191
- package/src/types/cache.ts +1 -1
- package/src/types/core.ts +2 -2
- package/src/types/database.ts +2 -10
- package/src/types/events.ts +23 -31
- package/src/types/hooks.ts +1 -1
- package/src/types/http.ts +5 -8
- package/src/types/logger.ts +7 -23
- package/src/types/module.ts +2 -2
- package/src/types/runtime.ts +6 -21
- package/src/types/session.ts +4 -4
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// Enterprise Event Bus - Secure, Scalable, Observable
|
|
2
|
-
import { EventEmitter } from
|
|
2
|
+
import { EventEmitter } from 'events';
|
|
3
3
|
import {
|
|
4
4
|
EventContext,
|
|
5
5
|
EventPayload,
|
|
@@ -8,8 +8,8 @@ import {
|
|
|
8
8
|
GlobalEventBus,
|
|
9
9
|
EventMetrics,
|
|
10
10
|
EventHandler,
|
|
11
|
-
} from
|
|
12
|
-
import { createFrameworkLogger } from
|
|
11
|
+
} from '../../types/events';
|
|
12
|
+
import { createFrameworkLogger } from '../logger';
|
|
13
13
|
|
|
14
14
|
export class MoroEventBus implements GlobalEventBus {
|
|
15
15
|
private emitter = new EventEmitter();
|
|
@@ -25,23 +25,19 @@ export class MoroEventBus implements GlobalEventBus {
|
|
|
25
25
|
private auditLog: EventPayload[] = [];
|
|
26
26
|
private latencySum = 0;
|
|
27
27
|
private errorCount = 0;
|
|
28
|
-
private logger = createFrameworkLogger(
|
|
28
|
+
private logger = createFrameworkLogger('EventBus');
|
|
29
29
|
|
|
30
30
|
constructor(private options: EventBusOptions = {}) {
|
|
31
31
|
this.emitter.setMaxListeners(options.maxListeners || 100);
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
// Global event emission with full context and metrics
|
|
35
|
-
async emit<T = any>(
|
|
36
|
-
event: string,
|
|
37
|
-
data: T,
|
|
38
|
-
context?: Partial<EventContext>,
|
|
39
|
-
): Promise<boolean> {
|
|
35
|
+
async emit<T = any>(event: string, data: T, context?: Partial<EventContext>): Promise<boolean> {
|
|
40
36
|
const startTime = Date.now();
|
|
41
37
|
|
|
42
38
|
const fullContext: EventContext = {
|
|
43
39
|
timestamp: new Date(),
|
|
44
|
-
source:
|
|
40
|
+
source: 'framework',
|
|
45
41
|
requestId: this.generateRequestId(),
|
|
46
42
|
...context,
|
|
47
43
|
};
|
|
@@ -73,7 +69,7 @@ export class MoroEventBus implements GlobalEventBus {
|
|
|
73
69
|
return result;
|
|
74
70
|
} catch (error) {
|
|
75
71
|
this.errorCount++;
|
|
76
|
-
this.logger.error(`Event emission error for ${event}`,
|
|
72
|
+
this.logger.error(`Event emission error for ${event}`, 'Emission', {
|
|
77
73
|
event,
|
|
78
74
|
error: error instanceof Error ? error.message : String(error),
|
|
79
75
|
});
|
|
@@ -110,17 +106,14 @@ export class MoroEventBus implements GlobalEventBus {
|
|
|
110
106
|
createModuleBus(moduleId: string): ModuleEventBus {
|
|
111
107
|
// Return existing bus if it already exists
|
|
112
108
|
if (this.moduleBuses.has(moduleId)) {
|
|
113
|
-
this.logger.debug(
|
|
114
|
-
`Reusing existing event bus for module: ${moduleId}`,
|
|
115
|
-
"ModuleBus",
|
|
116
|
-
);
|
|
109
|
+
this.logger.debug(`Reusing existing event bus for module: ${moduleId}`, 'ModuleBus');
|
|
117
110
|
return this.moduleBuses.get(moduleId)!;
|
|
118
111
|
}
|
|
119
112
|
|
|
120
113
|
const moduleBus = new ModuleEventBusImpl(moduleId, this);
|
|
121
114
|
this.moduleBuses.set(moduleId, moduleBus);
|
|
122
115
|
|
|
123
|
-
this.logger.debug(`Created event bus for module: ${moduleId}`,
|
|
116
|
+
this.logger.debug(`Created event bus for module: ${moduleId}`, 'ModuleBus');
|
|
124
117
|
return moduleBus;
|
|
125
118
|
}
|
|
126
119
|
|
|
@@ -130,10 +123,7 @@ export class MoroEventBus implements GlobalEventBus {
|
|
|
130
123
|
if (moduleBus) {
|
|
131
124
|
moduleBus.removeAllListeners();
|
|
132
125
|
this.moduleBuses.delete(moduleId);
|
|
133
|
-
this.logger.debug(
|
|
134
|
-
`Destroyed event bus for module: ${moduleId}`,
|
|
135
|
-
"ModuleBus",
|
|
136
|
-
);
|
|
126
|
+
this.logger.debug(`Destroyed event bus for module: ${moduleId}`, 'ModuleBus');
|
|
137
127
|
}
|
|
138
128
|
}
|
|
139
129
|
|
|
@@ -141,27 +131,22 @@ export class MoroEventBus implements GlobalEventBus {
|
|
|
141
131
|
getMetrics(): EventMetrics {
|
|
142
132
|
return {
|
|
143
133
|
...this.metrics,
|
|
144
|
-
averageLatency:
|
|
145
|
-
this.metrics.totalEvents > 0
|
|
146
|
-
? this.latencySum / this.metrics.totalEvents
|
|
147
|
-
: 0,
|
|
134
|
+
averageLatency: this.metrics.totalEvents > 0 ? this.latencySum / this.metrics.totalEvents : 0,
|
|
148
135
|
errorRate:
|
|
149
|
-
this.metrics.totalEvents > 0
|
|
150
|
-
? (this.errorCount / this.metrics.totalEvents) * 100
|
|
151
|
-
: 0,
|
|
136
|
+
this.metrics.totalEvents > 0 ? (this.errorCount / this.metrics.totalEvents) * 100 : 0,
|
|
152
137
|
};
|
|
153
138
|
}
|
|
154
139
|
|
|
155
140
|
// Enable audit logging for compliance
|
|
156
141
|
enableAuditLog(): void {
|
|
157
142
|
this.auditEnabled = true;
|
|
158
|
-
this.logger.info(
|
|
143
|
+
this.logger.info('Event audit logging enabled', 'Audit');
|
|
159
144
|
}
|
|
160
145
|
|
|
161
146
|
disableAuditLog(): void {
|
|
162
147
|
this.auditEnabled = false;
|
|
163
148
|
this.auditLog = [];
|
|
164
|
-
this.logger.info(
|
|
149
|
+
this.logger.info('Event audit logging disabled', 'Audit');
|
|
165
150
|
}
|
|
166
151
|
|
|
167
152
|
// Get audit log for compliance reporting
|
|
@@ -171,12 +156,10 @@ export class MoroEventBus implements GlobalEventBus {
|
|
|
171
156
|
|
|
172
157
|
private updateMetrics(event: string, moduleId?: string): void {
|
|
173
158
|
this.metrics.totalEvents++;
|
|
174
|
-
this.metrics.eventsByType[event] =
|
|
175
|
-
(this.metrics.eventsByType[event] || 0) + 1;
|
|
159
|
+
this.metrics.eventsByType[event] = (this.metrics.eventsByType[event] || 0) + 1;
|
|
176
160
|
|
|
177
161
|
if (moduleId) {
|
|
178
|
-
this.metrics.eventsByModule[moduleId] =
|
|
179
|
-
(this.metrics.eventsByModule[moduleId] || 0) + 1;
|
|
162
|
+
this.metrics.eventsByModule[moduleId] = (this.metrics.eventsByModule[moduleId] || 0) + 1;
|
|
180
163
|
}
|
|
181
164
|
}
|
|
182
165
|
|
|
@@ -189,7 +172,7 @@ export class MoroEventBus implements GlobalEventBus {
|
|
|
189
172
|
class ModuleEventBusImpl implements ModuleEventBus {
|
|
190
173
|
constructor(
|
|
191
174
|
private moduleId: string,
|
|
192
|
-
private globalBus: MoroEventBus
|
|
175
|
+
private globalBus: MoroEventBus
|
|
193
176
|
) {}
|
|
194
177
|
|
|
195
178
|
async emit<T = any>(event: string, data: T): Promise<boolean> {
|
|
@@ -197,24 +180,18 @@ class ModuleEventBusImpl implements ModuleEventBus {
|
|
|
197
180
|
const namespacedEvent = `module:${this.moduleId}:${event}`;
|
|
198
181
|
|
|
199
182
|
return this.globalBus.emit(namespacedEvent, data, {
|
|
200
|
-
source:
|
|
183
|
+
source: 'module',
|
|
201
184
|
moduleId: this.moduleId,
|
|
202
185
|
});
|
|
203
186
|
}
|
|
204
187
|
|
|
205
|
-
on<T = any>(
|
|
206
|
-
event: string,
|
|
207
|
-
listener: (payload: EventPayload<T>) => void | Promise<void>,
|
|
208
|
-
): this {
|
|
188
|
+
on<T = any>(event: string, listener: (payload: EventPayload<T>) => void | Promise<void>): this {
|
|
209
189
|
const namespacedEvent = `module:${this.moduleId}:${event}`;
|
|
210
190
|
this.globalBus.on(namespacedEvent, listener);
|
|
211
191
|
return this;
|
|
212
192
|
}
|
|
213
193
|
|
|
214
|
-
once<T = any>(
|
|
215
|
-
event: string,
|
|
216
|
-
listener: (payload: EventPayload<T>) => void | Promise<void>,
|
|
217
|
-
): this {
|
|
194
|
+
once<T = any>(event: string, listener: (payload: EventPayload<T>) => void | Promise<void>): this {
|
|
218
195
|
const namespacedEvent = `module:${this.moduleId}:${event}`;
|
|
219
196
|
this.globalBus.once(namespacedEvent, listener);
|
|
220
197
|
return this;
|
|
@@ -233,10 +210,10 @@ class ModuleEventBusImpl implements ModuleEventBus {
|
|
|
233
210
|
} else {
|
|
234
211
|
// Remove all module events - would need access to globalBus emitter
|
|
235
212
|
// For now, this is a simplified implementation
|
|
236
|
-
const logger = createFrameworkLogger(
|
|
213
|
+
const logger = createFrameworkLogger('EventBus');
|
|
237
214
|
logger.warn(
|
|
238
215
|
`Removing all listeners for module ${this.moduleId} not fully implemented`,
|
|
239
|
-
|
|
216
|
+
'ModuleBus'
|
|
240
217
|
);
|
|
241
218
|
}
|
|
242
219
|
return this;
|
package/src/core/events/index.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// Event System - Centralized Exports
|
|
2
|
-
export { MoroEventBus } from
|
|
2
|
+
export { MoroEventBus } from './event-bus';
|
|
3
3
|
export type {
|
|
4
4
|
EventContext,
|
|
5
5
|
EventPayload,
|
|
@@ -9,4 +9,4 @@ export type {
|
|
|
9
9
|
EventMetrics,
|
|
10
10
|
SystemEvents,
|
|
11
11
|
EventHandler,
|
|
12
|
-
} from
|
|
12
|
+
} from '../../types/events';
|