@morojs/moro 1.8.4 → 1.8.6
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 +7 -6
- package/dist/core/http/http-server.js +18 -1
- package/dist/core/http/http-server.js.map +1 -1
- package/dist/core/http/http2-server.js +13 -0
- package/dist/core/http/http2-server.js.map +1 -1
- package/dist/core/http/moro-engine-server.js +13 -0
- package/dist/core/http/moro-engine-server.js.map +1 -1
- package/dist/core/http/uws-http-server.js +16 -1
- package/dist/core/http/uws-http-server.js.map +1 -1
- package/dist/core/jobs/job-executor.d.ts +1 -0
- package/dist/core/jobs/job-executor.js +23 -1
- package/dist/core/jobs/job-executor.js.map +1 -1
- package/dist/core/middleware/built-in/auth/helpers.js +11 -1
- package/dist/core/middleware/built-in/auth/helpers.js.map +1 -1
- package/dist/core/middleware/built-in/cache/adapters/cache/memory.js +5 -1
- package/dist/core/middleware/built-in/cache/adapters/cache/memory.js.map +1 -1
- package/dist/core/middleware/index.d.ts +2 -0
- package/dist/core/middleware/index.js +5 -0
- package/dist/core/middleware/index.js.map +1 -1
- package/dist/core/routing/unified-router.d.ts +2 -0
- package/dist/core/routing/unified-router.js +20 -0
- package/dist/core/routing/unified-router.js.map +1 -1
- package/dist/core/utilities/hooks.d.ts +5 -4
- package/dist/core/utilities/hooks.js +9 -4
- package/dist/core/utilities/hooks.js.map +1 -1
- package/dist/moro.d.ts +1 -0
- package/dist/moro.js +57 -14
- package/dist/moro.js.map +1 -1
- package/dist/types/hooks.d.ts +2 -0
- package/dist/types/hooks.js.map +1 -1
- package/package.json +3 -1
|
@@ -469,7 +469,9 @@ export class UWebSocketsHttpServer {
|
|
|
469
469
|
// request through the full pipeline instead
|
|
470
470
|
if (this.globalMiddleware.length !== 0 ||
|
|
471
471
|
(this.hookManager &&
|
|
472
|
-
(this.hookManager.hasHooks === undefined ||
|
|
472
|
+
(this.hookManager.hasHooks === undefined ||
|
|
473
|
+
this.hookManager.hasHooks('request') ||
|
|
474
|
+
this.hookManager.hasHooks('response')))) {
|
|
473
475
|
void this.handleRequest(req, res);
|
|
474
476
|
return;
|
|
475
477
|
}
|
|
@@ -660,6 +662,13 @@ export class UWebSocketsHttpServer {
|
|
|
660
662
|
response: httpRes,
|
|
661
663
|
});
|
|
662
664
|
}
|
|
665
|
+
// Post-response hooks (session persistence, auth session refresh, CDN
|
|
666
|
+
// invalidation) run after the response is flushed, off the critical path.
|
|
667
|
+
if (hookManager && (hookManager.hasHooks === undefined || hookManager.hasHooks('response'))) {
|
|
668
|
+
httpRes.once('finish', () => {
|
|
669
|
+
void Promise.resolve(hookManager.execute('response', { request: httpReq, response: httpRes })).catch((error) => this.logger?.error?.(`Response hook error: ${error?.message || error}`, 'Hooks'));
|
|
670
|
+
});
|
|
671
|
+
}
|
|
663
672
|
// Execute global middleware chain
|
|
664
673
|
if (this.globalMiddleware.length > 0) {
|
|
665
674
|
httpReq.materialize();
|
|
@@ -707,6 +716,12 @@ export class UWebSocketsHttpServer {
|
|
|
707
716
|
return;
|
|
708
717
|
}
|
|
709
718
|
this.logger.error(`Request handling error: ${error instanceof Error ? error.message : String(error)}`, 'RequestError');
|
|
719
|
+
// Error hooks are observational: fire-and-forget so a slow or throwing
|
|
720
|
+
// observer can never delay or alter the error response.
|
|
721
|
+
const errorHooks = this.hookManager;
|
|
722
|
+
if (errorHooks && (errorHooks.hasHooks === undefined || errorHooks.hasHooks('error'))) {
|
|
723
|
+
void Promise.resolve(errorHooks.execute('error', { request: httpReq, response: httpRes, error })).catch((hookError) => this.logger?.error?.(`Error hook error: ${hookError?.message || hookError}`, 'Hooks'));
|
|
724
|
+
}
|
|
710
725
|
// Send error response if not already sent
|
|
711
726
|
if (!res.aborted) {
|
|
712
727
|
try {
|