@asenajs/ergenecore 1.2.0 → 1.3.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/README.md +17 -17
- package/dist/lib/Ergenecore.d.ts +13 -0
- package/dist/lib/Ergenecore.js +136 -58
- package/dist/lib/Ergenecore.js.map +1 -1
- package/dist/lib/ErgenecoreContextWrapper.d.ts +44 -4
- package/dist/lib/ErgenecoreContextWrapper.js +115 -7
- package/dist/lib/ErgenecoreContextWrapper.js.map +1 -1
- package/dist/lib/ErgenecoreWebsocketAdapter.d.ts +2 -16
- package/dist/lib/ErgenecoreWebsocketAdapter.js +20 -48
- package/dist/lib/ErgenecoreWebsocketAdapter.js.map +1 -1
- package/dist/lib/defaults/ConfigService.d.ts +5 -2
- package/dist/lib/defaults/ConfigService.js +1 -1
- package/dist/lib/defaults/ConfigService.js.map +1 -1
- package/dist/lib/defaults/MiddlewareService.d.ts +1 -1
- package/dist/lib/defaults/MiddlewareService.js +1 -1
- package/dist/lib/defaults/StaticServeService.d.ts +1 -1
- package/dist/lib/defaults/StaticServeService.js +1 -1
- package/dist/lib/defaults/ValidationService.d.ts +1 -1
- package/dist/lib/defaults/ValidationService.js +1 -1
- package/dist/lib/errors.d.ts +24 -5
- package/dist/lib/errors.js +15 -4
- package/dist/lib/errors.js.map +1 -1
- package/dist/lib/index.d.ts +5 -1
- package/dist/lib/index.js +6 -0
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/middlewares/CorsMiddleware.d.ts +1 -1
- package/dist/lib/middlewares/CorsMiddleware.js +1 -1
- package/dist/lib/middlewares/RateLimiterMiddleware.d.ts +1 -1
- package/dist/lib/middlewares/RateLimiterMiddleware.js +5 -2
- package/dist/lib/middlewares/RateLimiterMiddleware.js.map +1 -1
- package/dist/lib/stream/SSEStreamWriter.d.ts +9 -0
- package/dist/lib/stream/SSEStreamWriter.js +18 -0
- package/dist/lib/stream/SSEStreamWriter.js.map +1 -0
- package/dist/lib/stream/StreamWriter.d.ts +24 -0
- package/dist/lib/stream/StreamWriter.js +72 -0
- package/dist/lib/stream/StreamWriter.js.map +1 -0
- package/dist/lib/stream/index.d.ts +2 -0
- package/dist/lib/stream/index.js +3 -0
- package/dist/lib/stream/index.js.map +1 -0
- package/dist/lib/types/SendPingStrategy.d.ts +4 -0
- package/dist/lib/types/SendPingStrategy.js +2 -0
- package/dist/lib/types/SendPingStrategy.js.map +1 -0
- package/dist/lib/types/Validation.d.ts +3 -3
- package/dist/lib/types/index.d.ts +1 -0
- package/dist/lib/types/index.js +2 -0
- package/dist/lib/types/index.js.map +1 -1
- package/package.json +11 -11
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Server } from 'bun';
|
|
2
|
+
import type { AsenaContext, AsenaSSEStreamWriter, AsenaStreamWriter, AsenaVariables, CookieExtra, SendOptions } from '@asenajs/asena/adapter';
|
|
2
3
|
/**
|
|
3
4
|
* CoreContext type alias for CoreContextWrapper
|
|
4
5
|
*/
|
|
@@ -20,7 +21,9 @@ export declare class ErgenecoreContextWrapper implements AsenaContext<Request, R
|
|
|
20
21
|
* Only created when context.res is accessed (e.g., by middlewares setting headers)
|
|
21
22
|
*/
|
|
22
23
|
private _mockResponse?;
|
|
23
|
-
|
|
24
|
+
private _server?;
|
|
25
|
+
private _requestIp?;
|
|
26
|
+
constructor(request: Request, server?: Server<never>);
|
|
24
27
|
/**
|
|
25
28
|
* Lazy-initialized URL getter
|
|
26
29
|
*
|
|
@@ -101,6 +104,19 @@ export declare class ErgenecoreContextWrapper implements AsenaContext<Request, R
|
|
|
101
104
|
* Get all values for a query parameter (for array query params)
|
|
102
105
|
*/
|
|
103
106
|
getQueryAll(name: string): Promise<string[]>;
|
|
107
|
+
/**
|
|
108
|
+
* Get all query parameters as a key-value object
|
|
109
|
+
*/
|
|
110
|
+
getAllQueries(): Record<string, string | string[]>;
|
|
111
|
+
/**
|
|
112
|
+
* Get the client IP address (lazy evaluated, cached)
|
|
113
|
+
*
|
|
114
|
+
* Uses Bun's server.requestIP() to resolve the actual TCP connection IP.
|
|
115
|
+
* Only computed on first call - zero cost if never accessed.
|
|
116
|
+
*
|
|
117
|
+
* @returns The client IP address, or null if unavailable
|
|
118
|
+
*/
|
|
119
|
+
getRequestIp(): string | null;
|
|
104
120
|
/**
|
|
105
121
|
* Set a response header that will be included in the final response
|
|
106
122
|
*
|
|
@@ -151,12 +167,16 @@ export declare class ErgenecoreContextWrapper implements AsenaContext<Request, R
|
|
|
151
167
|
*/
|
|
152
168
|
redirect(url: string): Response;
|
|
153
169
|
/**
|
|
154
|
-
* Get value from context store
|
|
170
|
+
* Get value from context store.
|
|
171
|
+
* Type-safe when AsenaVariables is augmented.
|
|
155
172
|
*/
|
|
173
|
+
getValue<K extends keyof AsenaVariables>(key: K): AsenaVariables[K];
|
|
156
174
|
getValue<T = any>(key: string): T;
|
|
157
175
|
/**
|
|
158
|
-
* Set value in context store
|
|
176
|
+
* Set value in context store.
|
|
177
|
+
* Type-safe when AsenaVariables is augmented.
|
|
159
178
|
*/
|
|
179
|
+
setValue<K extends keyof AsenaVariables>(key: K, value: AsenaVariables[K]): void;
|
|
160
180
|
setValue(key: string, value: any): void;
|
|
161
181
|
/**
|
|
162
182
|
* Set WebSocket data that will be available during upgrade
|
|
@@ -172,6 +192,26 @@ export declare class ErgenecoreContextWrapper implements AsenaContext<Request, R
|
|
|
172
192
|
* Automatically merges headers set by middlewares via setResponseHeader()
|
|
173
193
|
*/
|
|
174
194
|
html(data: string, statusOrOptions?: SendOptions | number): Response;
|
|
195
|
+
/**
|
|
196
|
+
* Start a generic binary/text stream
|
|
197
|
+
*/
|
|
198
|
+
stream(cb: (stream: AsenaStreamWriter) => Promise<void>, onError?: (error: Error, stream: AsenaStreamWriter) => Promise<void>): Response;
|
|
199
|
+
/**
|
|
200
|
+
* Start a Server-Sent Events stream
|
|
201
|
+
*/
|
|
202
|
+
streamSSE(cb: (stream: AsenaSSEStreamWriter) => Promise<void>, onError?: (error: Error, stream: AsenaSSEStreamWriter) => Promise<void>): Response;
|
|
203
|
+
/**
|
|
204
|
+
* Start a text stream with text/plain content-type
|
|
205
|
+
*/
|
|
206
|
+
streamText(cb: (stream: AsenaStreamWriter) => Promise<void>, onError?: (error: Error, stream: AsenaStreamWriter) => Promise<void>): Response;
|
|
207
|
+
/**
|
|
208
|
+
* Wire request abort signal to stream abort
|
|
209
|
+
*/
|
|
210
|
+
private wireAbort;
|
|
211
|
+
/**
|
|
212
|
+
* Fire-and-forget the streaming callback with error handling
|
|
213
|
+
*/
|
|
214
|
+
private runStreamCallback;
|
|
175
215
|
/**
|
|
176
216
|
* Merge middleware headers with custom headers (lazy - no allocation if no headers set)
|
|
177
217
|
*
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { HttpException } from './errors';
|
|
2
|
+
import { SSEStreamWriter } from './stream';
|
|
3
|
+
import { StreamWriter } from './stream';
|
|
2
4
|
/**
|
|
3
5
|
* CoreContextWrapper wraps Bun's native Request/Response to implement Asena's AsenaContext interface
|
|
4
6
|
*
|
|
@@ -16,8 +18,11 @@ export class ErgenecoreContextWrapper {
|
|
|
16
18
|
* Only created when context.res is accessed (e.g., by middlewares setting headers)
|
|
17
19
|
*/
|
|
18
20
|
_mockResponse;
|
|
19
|
-
|
|
21
|
+
_server;
|
|
22
|
+
_requestIp;
|
|
23
|
+
constructor(request, server) {
|
|
20
24
|
this.request = request;
|
|
25
|
+
this._server = server;
|
|
21
26
|
}
|
|
22
27
|
/**
|
|
23
28
|
* Lazy-initialized URL getter
|
|
@@ -174,6 +179,42 @@ export class ErgenecoreContextWrapper {
|
|
|
174
179
|
async getQueryAll(name) {
|
|
175
180
|
return this.url.searchParams.getAll(name);
|
|
176
181
|
}
|
|
182
|
+
/**
|
|
183
|
+
* Get all query parameters as a key-value object
|
|
184
|
+
*/
|
|
185
|
+
getAllQueries() {
|
|
186
|
+
const result = {};
|
|
187
|
+
for (const [key, value] of this.url.searchParams.entries()) {
|
|
188
|
+
if (key in result) {
|
|
189
|
+
const existing = result[key];
|
|
190
|
+
result[key] = Array.isArray(existing) ? [...existing, value] : [existing, value];
|
|
191
|
+
}
|
|
192
|
+
else {
|
|
193
|
+
result[key] = value;
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
return result;
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Get the client IP address (lazy evaluated, cached)
|
|
200
|
+
*
|
|
201
|
+
* Uses Bun's server.requestIP() to resolve the actual TCP connection IP.
|
|
202
|
+
* Only computed on first call - zero cost if never accessed.
|
|
203
|
+
*
|
|
204
|
+
* @returns The client IP address, or null if unavailable
|
|
205
|
+
*/
|
|
206
|
+
getRequestIp() {
|
|
207
|
+
if (this._requestIp === undefined) {
|
|
208
|
+
if (this._server) {
|
|
209
|
+
const addr = this._server.requestIP(this.request);
|
|
210
|
+
this._requestIp = addr?.address ?? null;
|
|
211
|
+
}
|
|
212
|
+
else {
|
|
213
|
+
this._requestIp = null;
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
return this._requestIp;
|
|
217
|
+
}
|
|
177
218
|
/**
|
|
178
219
|
* Set a response header that will be included in the final response
|
|
179
220
|
*
|
|
@@ -296,15 +337,9 @@ export class ErgenecoreContextWrapper {
|
|
|
296
337
|
headers: { Location: url },
|
|
297
338
|
});
|
|
298
339
|
}
|
|
299
|
-
/**
|
|
300
|
-
* Get value from context store
|
|
301
|
-
*/
|
|
302
340
|
getValue(key) {
|
|
303
341
|
return this.values.get(key);
|
|
304
342
|
}
|
|
305
|
-
/**
|
|
306
|
-
* Set value in context store
|
|
307
|
-
*/
|
|
308
343
|
setValue(key, value) {
|
|
309
344
|
this.values.set(key, value);
|
|
310
345
|
}
|
|
@@ -333,6 +368,79 @@ export class ErgenecoreContextWrapper {
|
|
|
333
368
|
headers: mergedHeaders,
|
|
334
369
|
});
|
|
335
370
|
}
|
|
371
|
+
/**
|
|
372
|
+
* Start a generic binary/text stream
|
|
373
|
+
*/
|
|
374
|
+
stream(cb, onError) {
|
|
375
|
+
const { readable, writable } = new TransformStream();
|
|
376
|
+
const stream = new StreamWriter(writable, readable);
|
|
377
|
+
this.wireAbort(stream);
|
|
378
|
+
const headers = this.mergeHeaders();
|
|
379
|
+
this.runStreamCallback(stream, cb, onError);
|
|
380
|
+
return new Response(stream.responseReadable, { status: 200, headers });
|
|
381
|
+
}
|
|
382
|
+
/**
|
|
383
|
+
* Start a Server-Sent Events stream
|
|
384
|
+
*/
|
|
385
|
+
streamSSE(cb, onError) {
|
|
386
|
+
const { readable, writable } = new TransformStream();
|
|
387
|
+
const stream = new SSEStreamWriter(writable, readable);
|
|
388
|
+
this.wireAbort(stream);
|
|
389
|
+
const headers = this.mergeHeaders({
|
|
390
|
+
'Content-Type': 'text/event-stream',
|
|
391
|
+
'Cache-Control': 'no-cache',
|
|
392
|
+
Connection: 'keep-alive',
|
|
393
|
+
});
|
|
394
|
+
this.runStreamCallback(stream, cb, onError);
|
|
395
|
+
return new Response(stream.responseReadable, { status: 200, headers });
|
|
396
|
+
}
|
|
397
|
+
/**
|
|
398
|
+
* Start a text stream with text/plain content-type
|
|
399
|
+
*/
|
|
400
|
+
streamText(cb, onError) {
|
|
401
|
+
const { readable, writable } = new TransformStream();
|
|
402
|
+
const stream = new StreamWriter(writable, readable);
|
|
403
|
+
this.wireAbort(stream);
|
|
404
|
+
const headers = this.mergeHeaders({
|
|
405
|
+
'Content-Type': 'text/plain',
|
|
406
|
+
'X-Content-Type-Options': 'nosniff',
|
|
407
|
+
});
|
|
408
|
+
this.runStreamCallback(stream, cb, onError);
|
|
409
|
+
return new Response(stream.responseReadable, { status: 200, headers });
|
|
410
|
+
}
|
|
411
|
+
/**
|
|
412
|
+
* Wire request abort signal to stream abort
|
|
413
|
+
*/
|
|
414
|
+
wireAbort(stream) {
|
|
415
|
+
this.request.signal.addEventListener('abort', () => {
|
|
416
|
+
if (!stream.closed) {
|
|
417
|
+
stream.abort();
|
|
418
|
+
}
|
|
419
|
+
});
|
|
420
|
+
}
|
|
421
|
+
/**
|
|
422
|
+
* Fire-and-forget the streaming callback with error handling
|
|
423
|
+
*/
|
|
424
|
+
runStreamCallback(stream, cb, onError) {
|
|
425
|
+
(async () => {
|
|
426
|
+
try {
|
|
427
|
+
await cb(stream);
|
|
428
|
+
}
|
|
429
|
+
catch (e) {
|
|
430
|
+
if (e instanceof Error && onError) {
|
|
431
|
+
await onError(e, stream);
|
|
432
|
+
}
|
|
433
|
+
else {
|
|
434
|
+
console.error(e);
|
|
435
|
+
}
|
|
436
|
+
}
|
|
437
|
+
finally {
|
|
438
|
+
if (!stream.closed) {
|
|
439
|
+
await stream.close();
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
})();
|
|
443
|
+
}
|
|
336
444
|
/**
|
|
337
445
|
* Merge middleware headers with custom headers (lazy - no allocation if no headers set)
|
|
338
446
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ErgenecoreContextWrapper.js","sourceRoot":"","sources":["../../lib/ErgenecoreContextWrapper.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ErgenecoreContextWrapper.js","sourceRoot":"","sources":["../../lib/ErgenecoreContextWrapper.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,7 +12,6 @@ export declare class ErgenecoreWebsocketAdapter extends AsenaWebsocketAdapter {
|
|
|
12
12
|
name: string;
|
|
13
13
|
private activeConnections;
|
|
14
14
|
private connectionLimits;
|
|
15
|
-
private heartbeatIntervals;
|
|
16
15
|
constructor(logger: ServerLogger);
|
|
17
16
|
/**
|
|
18
17
|
* Registers a WebSocket service with namespace (base class implementation)
|
|
@@ -40,26 +39,13 @@ export declare class ErgenecoreWebsocketAdapter extends AsenaWebsocketAdapter {
|
|
|
40
39
|
* Prepares WebSocket configuration with lifecycle handlers
|
|
41
40
|
* @param options - WebSocket options
|
|
42
41
|
*/
|
|
43
|
-
prepareWebSocket(options?: WSOptions
|
|
44
|
-
heartbeatInterval?: number;
|
|
45
|
-
}): void;
|
|
42
|
+
prepareWebSocket(options?: WSOptions): void;
|
|
46
43
|
/**
|
|
47
44
|
* Starts WebSocket server and initializes a single shared AsenaWebSocketServer
|
|
48
45
|
* All WebSocket services share the same wrapper instance for efficiency
|
|
49
46
|
* @param server - Bun Server instance
|
|
50
47
|
*/
|
|
51
|
-
startWebsocket(server: Server<any>): void
|
|
52
|
-
/**
|
|
53
|
-
* Starts heartbeat for a connection
|
|
54
|
-
* @param ws - WebSocket connection
|
|
55
|
-
* @param intervalMs - Heartbeat interval in milliseconds (default: 30000)
|
|
56
|
-
*/
|
|
57
|
-
private startHeartbeat;
|
|
58
|
-
/**
|
|
59
|
-
* Stops heartbeat for a connection
|
|
60
|
-
* @param connectionId - Connection ID
|
|
61
|
-
*/
|
|
62
|
-
private stopHeartbeat;
|
|
48
|
+
startWebsocket(server: Server<any>): Promise<void>;
|
|
63
49
|
/**
|
|
64
50
|
* Creates a handler wrapper for WebSocket lifecycle events
|
|
65
51
|
* @param type - Event type (onOpenInternal, onMessage, etc.)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AsenaWebsocketAdapter } from '@asenajs/asena/adapter';
|
|
2
|
-
import { AsenaSocket, AsenaWebSocketServer, } from '@asenajs/asena/web-socket';
|
|
2
|
+
import { AsenaSocket, AsenaWebSocketServer, BunLocalTransport, } from '@asenajs/asena/web-socket';
|
|
3
3
|
/**
|
|
4
4
|
* CoreWebsocketAdapter - WebSocket adapter for Bun
|
|
5
5
|
*
|
|
@@ -9,7 +9,6 @@ export class ErgenecoreWebsocketAdapter extends AsenaWebsocketAdapter {
|
|
|
9
9
|
name = 'ErgenecoreWebsocketAdapter';
|
|
10
10
|
activeConnections = new Map(); // namespace -> Set of connection IDs
|
|
11
11
|
connectionLimits = new Map(); // namespace -> max connections
|
|
12
|
-
heartbeatIntervals = new Map(); // connection ID -> interval
|
|
13
12
|
constructor(logger) {
|
|
14
13
|
super(logger);
|
|
15
14
|
}
|
|
@@ -66,10 +65,7 @@ export class ErgenecoreWebsocketAdapter extends AsenaWebsocketAdapter {
|
|
|
66
65
|
async shutdown(_timeoutMs = 5000) {
|
|
67
66
|
this.logger.info('Starting WebSocket graceful shutdown...');
|
|
68
67
|
// Stop all heartbeats
|
|
69
|
-
|
|
70
|
-
clearInterval(interval);
|
|
71
|
-
}
|
|
72
|
-
this.heartbeatIntervals.clear();
|
|
68
|
+
this.clearAllHeartbeats();
|
|
73
69
|
// Clear connection tracking
|
|
74
70
|
this.activeConnections.clear();
|
|
75
71
|
this.logger.info('WebSocket shutdown complete');
|
|
@@ -82,8 +78,17 @@ export class ErgenecoreWebsocketAdapter extends AsenaWebsocketAdapter {
|
|
|
82
78
|
if (!this.websockets || this.websockets.size < 1) {
|
|
83
79
|
return;
|
|
84
80
|
}
|
|
85
|
-
const
|
|
81
|
+
const strategy = options?.sendPingStrategy ?? 'adapter';
|
|
82
|
+
// Heartbeat is only used in adapter strategy
|
|
83
|
+
const heartbeatInterval = strategy === 'adapter' ? options?.heartbeatInterval : undefined;
|
|
84
|
+
// Separate strategy/heartbeat fields from WSOptions to avoid conflicts
|
|
85
|
+
const { sendPings: _sendPings, sendPingStrategy: _strategy, heartbeatInterval: _hbInterval, ...restOptions } = options ?? {};
|
|
86
86
|
this.websocket = {
|
|
87
|
+
// Strategy controls sendPings:
|
|
88
|
+
// 'adapter' → false (Bun native disabled, adapter handles keepalive)
|
|
89
|
+
// 'native' → true (Bun native handles ping/pong)
|
|
90
|
+
// See: https://github.com/oven-sh/bun/issues/26554
|
|
91
|
+
sendPings: strategy === 'native',
|
|
87
92
|
open: async (ws) => {
|
|
88
93
|
// Normalize to namespace format (remove leading /)
|
|
89
94
|
const namespace = ws.data.path.replace(/^\//, '');
|
|
@@ -100,7 +105,7 @@ export class ErgenecoreWebsocketAdapter extends AsenaWebsocketAdapter {
|
|
|
100
105
|
this.activeConnections.set(namespace, new Set());
|
|
101
106
|
}
|
|
102
107
|
this.activeConnections.get(namespace).add(ws.data.id);
|
|
103
|
-
// Start heartbeat if enabled
|
|
108
|
+
// Start heartbeat if enabled (adapter strategy only)
|
|
104
109
|
if (heartbeatInterval) {
|
|
105
110
|
this.startHeartbeat(ws, heartbeatInterval);
|
|
106
111
|
}
|
|
@@ -124,7 +129,7 @@ export class ErgenecoreWebsocketAdapter extends AsenaWebsocketAdapter {
|
|
|
124
129
|
drain: this.createHandler('onDrain'),
|
|
125
130
|
ping: this.createHandler('onPing'),
|
|
126
131
|
pong: this.createHandler('onPong'),
|
|
127
|
-
...
|
|
132
|
+
...restOptions,
|
|
128
133
|
};
|
|
129
134
|
}
|
|
130
135
|
/**
|
|
@@ -132,53 +137,20 @@ export class ErgenecoreWebsocketAdapter extends AsenaWebsocketAdapter {
|
|
|
132
137
|
* All WebSocket services share the same wrapper instance for efficiency
|
|
133
138
|
* @param server - Bun Server instance
|
|
134
139
|
*/
|
|
135
|
-
startWebsocket(server) {
|
|
140
|
+
async startWebsocket(server) {
|
|
136
141
|
if (!this.websockets || this.websockets.size < 1) {
|
|
137
142
|
return;
|
|
138
143
|
}
|
|
144
|
+
// Initialize transport (default: BunLocalTransport)
|
|
145
|
+
const transport = this._transport ?? new BunLocalTransport();
|
|
146
|
+
await transport.init?.(server);
|
|
139
147
|
// Create a single shared wrapper for all WebSocket services
|
|
140
|
-
const sharedServer = new AsenaWebSocketServer(
|
|
148
|
+
const sharedServer = new AsenaWebSocketServer(transport);
|
|
141
149
|
// Assign the shared wrapper to all services
|
|
142
150
|
for (const websocket of this.websockets.values()) {
|
|
143
151
|
websocket.server = sharedServer;
|
|
144
152
|
}
|
|
145
153
|
}
|
|
146
|
-
/**
|
|
147
|
-
* Starts heartbeat for a connection
|
|
148
|
-
* @param ws - WebSocket connection
|
|
149
|
-
* @param intervalMs - Heartbeat interval in milliseconds (default: 30000)
|
|
150
|
-
*/
|
|
151
|
-
startHeartbeat(ws, intervalMs = 30000) {
|
|
152
|
-
const interval = setInterval(() => {
|
|
153
|
-
if (ws.readyState === WebSocket.OPEN) {
|
|
154
|
-
try {
|
|
155
|
-
ws.ping();
|
|
156
|
-
}
|
|
157
|
-
catch (error) {
|
|
158
|
-
this.logger.error(`Heartbeat ping failed for connection ${ws.data.id}:`, error);
|
|
159
|
-
this.stopHeartbeat(ws.data.id);
|
|
160
|
-
if (ws.readyState === WebSocket.OPEN) {
|
|
161
|
-
ws.close(1011, 'Heartbeat failed');
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
else {
|
|
166
|
-
this.stopHeartbeat(ws.data.id);
|
|
167
|
-
}
|
|
168
|
-
}, intervalMs);
|
|
169
|
-
this.heartbeatIntervals.set(ws.data.id, interval);
|
|
170
|
-
}
|
|
171
|
-
/**
|
|
172
|
-
* Stops heartbeat for a connection
|
|
173
|
-
* @param connectionId - Connection ID
|
|
174
|
-
*/
|
|
175
|
-
stopHeartbeat(connectionId) {
|
|
176
|
-
const interval = this.heartbeatIntervals.get(connectionId);
|
|
177
|
-
if (interval) {
|
|
178
|
-
clearInterval(interval);
|
|
179
|
-
this.heartbeatIntervals.delete(connectionId);
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
154
|
/**
|
|
183
155
|
* Creates a handler wrapper for WebSocket lifecycle events
|
|
184
156
|
* @param type - Event type (onOpenInternal, onMessage, etc.)
|
|
@@ -202,7 +174,7 @@ export class ErgenecoreWebsocketAdapter extends AsenaWebsocketAdapter {
|
|
|
202
174
|
}
|
|
203
175
|
handler = handler.bind(websocket);
|
|
204
176
|
try {
|
|
205
|
-
await handler(new AsenaSocket(ws, websocket.namespace), ...args);
|
|
177
|
+
await handler(new AsenaSocket(ws, websocket.namespace, this._transport), ...args);
|
|
206
178
|
}
|
|
207
179
|
catch (error) {
|
|
208
180
|
this.logger.error(`WebSocket ${type} handler error for path ${ws.data.path}:`, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ErgenecoreWebsocketAdapter.js","sourceRoot":"","sources":["../../lib/ErgenecoreWebsocketAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAI/D,OAAO,EACL,WAAW,EACX,oBAAoB,
|
|
1
|
+
{"version":3,"file":"ErgenecoreWebsocketAdapter.js","sourceRoot":"","sources":["../../lib/ErgenecoreWebsocketAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
*
|
|
9
9
|
* @example
|
|
10
10
|
* ```typescript
|
|
11
|
-
* import { Config } from '@asenajs/asena/
|
|
11
|
+
* import { Config } from '@asenajs/asena/decorators';
|
|
12
12
|
* import { ConfigService, type Context } from '@asenajs/ergenecore';
|
|
13
13
|
*
|
|
14
14
|
* @Config()
|
|
@@ -19,8 +19,9 @@
|
|
|
19
19
|
* }
|
|
20
20
|
* ```
|
|
21
21
|
*/
|
|
22
|
-
import type { AsenaConfig } from '@asenajs/asena/server/config';
|
|
22
|
+
import type { AsenaConfig, GlobalMiddlewareEntry } from '@asenajs/asena/server/config';
|
|
23
23
|
import type { Context } from '../ErgenecoreContextWrapper';
|
|
24
|
+
import type { AsenaServeOptions } from '@asenajs/asena/adapter';
|
|
24
25
|
/**
|
|
25
26
|
* Base class for Ergenecore configuration services
|
|
26
27
|
*
|
|
@@ -36,4 +37,6 @@ export declare abstract class ConfigService implements AsenaConfig<Context> {
|
|
|
36
37
|
* @returns Response or Promise<Response>
|
|
37
38
|
*/
|
|
38
39
|
abstract onError(error: Error, context: Context): Response | Promise<Response>;
|
|
40
|
+
abstract globalMiddlewares(): Promise<GlobalMiddlewareEntry[]> | GlobalMiddlewareEntry[];
|
|
41
|
+
abstract serveOptions(): AsenaServeOptions;
|
|
39
42
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfigService.js","sourceRoot":"","sources":["../../../lib/defaults/ConfigService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;
|
|
1
|
+
{"version":3,"file":"ConfigService.js","sourceRoot":"","sources":["../../../lib/defaults/ConfigService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAMH;;;;;GAKG;AACH,MAAM,OAAgB,aAAa;CAalC"}
|
|
@@ -8,7 +8,7 @@ import type { Context } from '../ErgenecoreContextWrapper';
|
|
|
8
8
|
*
|
|
9
9
|
* @example
|
|
10
10
|
* ```typescript
|
|
11
|
-
* import { StaticServe } from '@asenajs/asena/
|
|
11
|
+
* import { StaticServe } from '@asenajs/asena/decorators';
|
|
12
12
|
* import { StaticServeService } from '@asenajs/ergenecore';
|
|
13
13
|
* import path from 'path';
|
|
14
14
|
*
|
|
@@ -6,7 +6,7 @@ import { AsenaStaticServeService } from '@asenajs/asena/middleware';
|
|
|
6
6
|
*
|
|
7
7
|
* @example
|
|
8
8
|
* ```typescript
|
|
9
|
-
* import { StaticServe } from '@asenajs/asena/
|
|
9
|
+
* import { StaticServe } from '@asenajs/asena/decorators';
|
|
10
10
|
* import { StaticServeService } from '@asenajs/ergenecore';
|
|
11
11
|
* import path from 'path';
|
|
12
12
|
*
|