@engjts/nexus 0.1.7 → 0.1.9
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/advanced/playground/generatePlaygroundHTML.d.ts.map +1 -1
- package/dist/advanced/playground/generatePlaygroundHTML.js +107 -0
- package/dist/advanced/playground/generatePlaygroundHTML.js.map +1 -1
- package/dist/advanced/playground/playground.d.ts +19 -0
- package/dist/advanced/playground/playground.d.ts.map +1 -1
- package/dist/advanced/playground/playground.js +70 -0
- package/dist/advanced/playground/playground.js.map +1 -1
- package/dist/advanced/playground/types.d.ts +20 -0
- package/dist/advanced/playground/types.d.ts.map +1 -1
- package/dist/core/application.d.ts +14 -0
- package/dist/core/application.d.ts.map +1 -1
- package/dist/core/application.js +173 -71
- package/dist/core/application.js.map +1 -1
- package/dist/core/context-pool.d.ts +2 -13
- package/dist/core/context-pool.d.ts.map +1 -1
- package/dist/core/context-pool.js +7 -45
- package/dist/core/context-pool.js.map +1 -1
- package/dist/core/context.d.ts +108 -5
- package/dist/core/context.d.ts.map +1 -1
- package/dist/core/context.js +449 -53
- package/dist/core/context.js.map +1 -1
- package/dist/core/index.d.ts +1 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +9 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/middleware.d.ts +6 -0
- package/dist/core/middleware.d.ts.map +1 -1
- package/dist/core/middleware.js +83 -84
- package/dist/core/middleware.js.map +1 -1
- package/dist/core/performance/fast-json.d.ts +149 -0
- package/dist/core/performance/fast-json.d.ts.map +1 -0
- package/dist/core/performance/fast-json.js +473 -0
- package/dist/core/performance/fast-json.js.map +1 -0
- package/dist/core/router/file-router.d.ts +20 -7
- package/dist/core/router/file-router.d.ts.map +1 -1
- package/dist/core/router/file-router.js +41 -13
- package/dist/core/router/file-router.js.map +1 -1
- package/dist/core/router/index.d.ts +6 -0
- package/dist/core/router/index.d.ts.map +1 -1
- package/dist/core/router/index.js +33 -6
- package/dist/core/router/index.js.map +1 -1
- package/dist/core/router/radix-tree.d.ts +4 -1
- package/dist/core/router/radix-tree.d.ts.map +1 -1
- package/dist/core/router/radix-tree.js +7 -3
- package/dist/core/router/radix-tree.js.map +1 -1
- package/dist/core/serializer.d.ts +251 -0
- package/dist/core/serializer.d.ts.map +1 -0
- package/dist/core/serializer.js +290 -0
- package/dist/core/serializer.js.map +1 -0
- package/dist/core/types.d.ts +39 -1
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -2
- package/dist/index.js.map +1 -1
- package/package.json +3 -1
- package/documentation/01-getting-started.md +0 -240
- package/documentation/02-context.md +0 -335
- package/documentation/03-routing.md +0 -397
- package/documentation/04-middleware.md +0 -483
- package/documentation/05-validation.md +0 -514
- package/documentation/06-error-handling.md +0 -465
- package/documentation/07-performance.md +0 -364
- package/documentation/08-adapters.md +0 -470
- package/documentation/09-api-reference.md +0 -548
- package/documentation/10-examples.md +0 -582
- package/documentation/11-deployment.md +0 -477
- package/documentation/12-sentry.md +0 -620
- package/documentation/13-sentry-data-storage.md +0 -996
- package/documentation/14-sentry-data-reference.md +0 -457
- package/documentation/15-sentry-summary.md +0 -409
- package/documentation/16-alerts-system.md +0 -745
- package/documentation/17-alert-adapters.md +0 -696
- package/documentation/18-alerts-implementation-summary.md +0 -385
- package/documentation/19-class-based-routing.md +0 -840
- package/documentation/20-websocket-realtime.md +0 -813
- package/documentation/21-cache-system.md +0 -510
- package/documentation/22-job-queue.md +0 -772
- package/documentation/23-sentry-plugin.md +0 -551
- package/documentation/24-testing-utilities.md +0 -1287
- package/documentation/25-api-versioning.md +0 -533
- package/documentation/26-context-store.md +0 -607
- package/documentation/27-dependency-injection.md +0 -329
- package/documentation/28-lifecycle-hooks.md +0 -521
- package/documentation/29-package-structure.md +0 -196
- package/documentation/30-plugin-system.md +0 -414
- package/documentation/31-jwt-authentication.md +0 -597
- package/documentation/32-cli.md +0 -268
- package/documentation/ALERTS-COMPLETE-SUMMARY.md +0 -429
- package/documentation/ALERTS-INDEX.md +0 -330
- package/documentation/ALERTS-QUICK-REFERENCE.md +0 -286
- package/documentation/README.md +0 -178
- package/documentation/index.html +0 -34
- package/modern_framework_paper.md +0 -1870
- package/public/css/style.css +0 -87
- package/public/index.html +0 -34
- package/public/js/app.js +0 -27
- package/src/advanced/cache/InMemoryCacheStore.ts +0 -68
- package/src/advanced/cache/MultiTierCache.ts +0 -194
- package/src/advanced/cache/RedisCacheStore.ts +0 -341
- package/src/advanced/cache/index.ts +0 -5
- package/src/advanced/cache/types.ts +0 -40
- package/src/advanced/graphql/SimpleDataLoader.ts +0 -42
- package/src/advanced/graphql/index.ts +0 -22
- package/src/advanced/graphql/server.ts +0 -252
- package/src/advanced/graphql/types.ts +0 -42
- package/src/advanced/jobs/InMemoryQueueStore.ts +0 -68
- package/src/advanced/jobs/JobQueue.ts +0 -556
- package/src/advanced/jobs/RedisQueueStore.ts +0 -367
- package/src/advanced/jobs/index.ts +0 -5
- package/src/advanced/jobs/types.ts +0 -70
- package/src/advanced/observability/APMManager.ts +0 -163
- package/src/advanced/observability/AlertManager.ts +0 -109
- package/src/advanced/observability/MetricRegistry.ts +0 -151
- package/src/advanced/observability/ObservabilityCenter.ts +0 -304
- package/src/advanced/observability/StructuredLogger.ts +0 -154
- package/src/advanced/observability/TracingManager.ts +0 -117
- package/src/advanced/observability/adapters.ts +0 -304
- package/src/advanced/observability/createObservabilityMiddleware.ts +0 -63
- package/src/advanced/observability/index.ts +0 -11
- package/src/advanced/observability/types.ts +0 -174
- package/src/advanced/playground/extractPathParams.ts +0 -6
- package/src/advanced/playground/generateFieldExample.ts +0 -31
- package/src/advanced/playground/generatePlaygroundHTML.ts +0 -1849
- package/src/advanced/playground/generateSummary.ts +0 -19
- package/src/advanced/playground/getTagFromPath.ts +0 -9
- package/src/advanced/playground/index.ts +0 -8
- package/src/advanced/playground/playground.ts +0 -170
- package/src/advanced/playground/types.ts +0 -20
- package/src/advanced/playground/zodToExample.ts +0 -16
- package/src/advanced/playground/zodToParams.ts +0 -15
- package/src/advanced/postman/buildAuth.ts +0 -31
- package/src/advanced/postman/buildBody.ts +0 -15
- package/src/advanced/postman/buildQueryParams.ts +0 -27
- package/src/advanced/postman/buildRequestItem.ts +0 -36
- package/src/advanced/postman/buildResponses.ts +0 -11
- package/src/advanced/postman/buildUrl.ts +0 -33
- package/src/advanced/postman/capitalize.ts +0 -4
- package/src/advanced/postman/generateCollection.ts +0 -59
- package/src/advanced/postman/generateEnvironment.ts +0 -34
- package/src/advanced/postman/generateExampleFromZod.ts +0 -21
- package/src/advanced/postman/generateFieldExample.ts +0 -45
- package/src/advanced/postman/generateName.ts +0 -20
- package/src/advanced/postman/generateUUID.ts +0 -11
- package/src/advanced/postman/getTagFromPath.ts +0 -10
- package/src/advanced/postman/index.ts +0 -28
- package/src/advanced/postman/postman.ts +0 -156
- package/src/advanced/postman/slugify.ts +0 -7
- package/src/advanced/postman/types.ts +0 -140
- package/src/advanced/realtime/index.ts +0 -18
- package/src/advanced/realtime/websocket.ts +0 -231
- package/src/advanced/sentry/index.ts +0 -1236
- package/src/advanced/sentry/types.ts +0 -355
- package/src/advanced/static/generateDirectoryListing.ts +0 -47
- package/src/advanced/static/generateETag.ts +0 -7
- package/src/advanced/static/getMimeType.ts +0 -9
- package/src/advanced/static/index.ts +0 -32
- package/src/advanced/static/isSafePath.ts +0 -13
- package/src/advanced/static/publicDir.ts +0 -21
- package/src/advanced/static/serveStatic.ts +0 -225
- package/src/advanced/static/spa.ts +0 -24
- package/src/advanced/static/types.ts +0 -159
- package/src/advanced/swagger/SwaggerGenerator.ts +0 -66
- package/src/advanced/swagger/buildOperation.ts +0 -61
- package/src/advanced/swagger/buildParameters.ts +0 -61
- package/src/advanced/swagger/buildRequestBody.ts +0 -21
- package/src/advanced/swagger/buildResponses.ts +0 -54
- package/src/advanced/swagger/capitalize.ts +0 -5
- package/src/advanced/swagger/convertPath.ts +0 -9
- package/src/advanced/swagger/createSwagger.ts +0 -12
- package/src/advanced/swagger/generateOperationId.ts +0 -21
- package/src/advanced/swagger/generateSpec.ts +0 -105
- package/src/advanced/swagger/generateSummary.ts +0 -24
- package/src/advanced/swagger/generateSwaggerUI.ts +0 -70
- package/src/advanced/swagger/generateThemeCss.ts +0 -53
- package/src/advanced/swagger/index.ts +0 -25
- package/src/advanced/swagger/swagger.ts +0 -237
- package/src/advanced/swagger/types.ts +0 -206
- package/src/advanced/swagger/zodFieldToOpenAPI.ts +0 -94
- package/src/advanced/swagger/zodSchemaToOpenAPI.ts +0 -50
- package/src/advanced/swagger/zodToOpenAPI.ts +0 -22
- package/src/advanced/testing/factory.ts +0 -509
- package/src/advanced/testing/harness.ts +0 -612
- package/src/advanced/testing/index.ts +0 -430
- package/src/advanced/testing/load-test.ts +0 -618
- package/src/advanced/testing/mock-server.ts +0 -498
- package/src/advanced/testing/mock.ts +0 -670
- package/src/cli/bin.ts +0 -9
- package/src/cli/cli.ts +0 -158
- package/src/cli/commands/add.ts +0 -178
- package/src/cli/commands/build.ts +0 -73
- package/src/cli/commands/create.ts +0 -166
- package/src/cli/commands/dev.ts +0 -85
- package/src/cli/commands/generate.ts +0 -99
- package/src/cli/commands/help.ts +0 -95
- package/src/cli/commands/init.ts +0 -91
- package/src/cli/commands/version.ts +0 -38
- package/src/cli/index.ts +0 -6
- package/src/cli/templates/generators.ts +0 -359
- package/src/cli/templates/index.ts +0 -680
- package/src/cli/utils/exec.ts +0 -52
- package/src/cli/utils/file-system.ts +0 -78
- package/src/cli/utils/logger.ts +0 -111
- package/src/core/adapter.ts +0 -88
- package/src/core/application.ts +0 -1335
- package/src/core/context-pool.ts +0 -127
- package/src/core/context.ts +0 -412
- package/src/core/index.ts +0 -80
- package/src/core/middleware.ts +0 -262
- package/src/core/performance/buffer-pool.ts +0 -108
- package/src/core/performance/middleware-optimizer.ts +0 -162
- package/src/core/plugin/PluginManager.ts +0 -435
- package/src/core/plugin/builder.ts +0 -358
- package/src/core/plugin/index.ts +0 -50
- package/src/core/plugin/types.ts +0 -214
- package/src/core/router/file-router.ts +0 -594
- package/src/core/router/index.ts +0 -227
- package/src/core/router/radix-tree.ts +0 -226
- package/src/core/store/index.ts +0 -30
- package/src/core/store/registry.ts +0 -178
- package/src/core/store/request-store.ts +0 -240
- package/src/core/store/types.ts +0 -233
- package/src/core/types.ts +0 -574
- package/src/database/adapter.ts +0 -35
- package/src/database/adapters/index.ts +0 -1
- package/src/database/adapters/mysql.ts +0 -669
- package/src/database/database.ts +0 -70
- package/src/database/dialect.ts +0 -388
- package/src/database/index.ts +0 -12
- package/src/database/migrations.ts +0 -86
- package/src/database/optimizer.ts +0 -125
- package/src/database/query-builder.ts +0 -404
- package/src/database/realtime.ts +0 -53
- package/src/database/schema.ts +0 -71
- package/src/database/transactions.ts +0 -56
- package/src/database/types.ts +0 -87
- package/src/deployment/cluster.ts +0 -471
- package/src/deployment/config.ts +0 -454
- package/src/deployment/docker.ts +0 -599
- package/src/deployment/graceful-shutdown.ts +0 -373
- package/src/deployment/index.ts +0 -56
- package/src/index.ts +0 -264
- package/src/security/adapter.ts +0 -318
- package/src/security/auth/JWTPlugin.ts +0 -234
- package/src/security/auth/JWTProvider.ts +0 -316
- package/src/security/auth/adapter.ts +0 -12
- package/src/security/auth/jwt.ts +0 -234
- package/src/security/auth/middleware.ts +0 -188
- package/src/security/csrf.ts +0 -220
- package/src/security/headers.ts +0 -108
- package/src/security/index.ts +0 -60
- package/src/security/rate-limit/adapter.ts +0 -7
- package/src/security/rate-limit/memory.ts +0 -108
- package/src/security/rate-limit/middleware.ts +0 -181
- package/src/security/sanitization.ts +0 -75
- package/src/security/types.ts +0 -240
- package/src/security/utils.ts +0 -52
- package/tsconfig.json +0 -39
package/dist/core/application.js
CHANGED
|
@@ -885,124 +885,181 @@ class Application {
|
|
|
885
885
|
}
|
|
886
886
|
/**
|
|
887
887
|
* Handle incoming HTTP request
|
|
888
|
+
* Optimized hot path for maximum performance
|
|
888
889
|
*/
|
|
889
890
|
async handleRequest(req, res) {
|
|
890
|
-
|
|
891
|
-
|
|
891
|
+
// Use non-null assertion - context pool always returns valid context
|
|
892
|
+
// acquire is now sync for better performance
|
|
893
|
+
const ctx = this.contextPool.acquire(req, res);
|
|
892
894
|
try {
|
|
893
|
-
//
|
|
894
|
-
ctx
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
ctx.setStoreRegistry(this.storeRegistry);
|
|
898
|
-
}
|
|
899
|
-
// Set debug mode for request stores
|
|
900
|
-
if ('setDebugMode' in ctx && typeof ctx.setDebugMode === 'function') {
|
|
901
|
-
ctx.setDebugMode(this.config.debug ?? false);
|
|
902
|
-
}
|
|
903
|
-
// === HOOK: onRequest ===
|
|
895
|
+
// Direct method calls - ContextImpl always has these methods
|
|
896
|
+
ctx.setStoreRegistry(this.storeRegistry);
|
|
897
|
+
ctx.setDebugMode(this.config.debug ?? false);
|
|
898
|
+
// === HOOK: onRequest (skip check if no hooks) ===
|
|
904
899
|
if (this.lifecycleHooks.onRequest) {
|
|
905
900
|
const hookResult = await this.lifecycleHooks.onRequest(ctx);
|
|
906
|
-
if (
|
|
901
|
+
if (hookResult && typeof hookResult === 'object' && 'statusCode' in hookResult) {
|
|
907
902
|
await this.sendResponse(res, hookResult, ctx);
|
|
903
|
+
this.cleanupRequest(ctx);
|
|
908
904
|
return;
|
|
909
905
|
}
|
|
910
906
|
}
|
|
911
|
-
//
|
|
907
|
+
// Fast path: no versioning configured (most common)
|
|
912
908
|
let matchPath = ctx.path;
|
|
913
909
|
if (this.versioningConfig) {
|
|
914
910
|
const { version, basePath, source } = this.resolveVersion(ctx);
|
|
915
911
|
ctx.version = version;
|
|
916
912
|
ctx.versionSource = source;
|
|
917
|
-
|
|
918
|
-
if (source === 'header' || source === 'query' || source === 'default') {
|
|
913
|
+
if (source !== 'path') {
|
|
919
914
|
matchPath = `/${version}${basePath.startsWith('/') ? basePath : '/' + basePath}`;
|
|
920
915
|
}
|
|
921
|
-
if (this.config.debug) {
|
|
922
|
-
console.log(`[Versioning] ${source} → ${version}, path: ${ctx.path} → ${matchPath}`);
|
|
923
|
-
}
|
|
924
916
|
}
|
|
925
917
|
// Find matching route
|
|
926
918
|
const match = this.router.match(ctx.method, matchPath);
|
|
927
919
|
if (!match) {
|
|
928
|
-
// Try fallback handler
|
|
920
|
+
// Try fallback handler
|
|
929
921
|
if (this.fallbackHandler) {
|
|
930
922
|
const fallbackResponse = await this.fallbackHandler(ctx, this.dependencies);
|
|
931
923
|
await this.sendResponse(res, fallbackResponse, ctx);
|
|
924
|
+
this.cleanupRequest(ctx);
|
|
932
925
|
return;
|
|
933
926
|
}
|
|
934
|
-
// 404 Not Found
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
body: JSON.stringify({ error: 'Not Found' })
|
|
939
|
-
}, ctx);
|
|
927
|
+
// 404 Not Found - use cached response
|
|
928
|
+
res.writeHead(404, { 'Content-Type': 'application/json' });
|
|
929
|
+
res.end('{"error":"Not Found"}');
|
|
930
|
+
this.cleanupRequest(ctx);
|
|
940
931
|
return;
|
|
941
932
|
}
|
|
942
|
-
// Set route params
|
|
943
|
-
|
|
944
|
-
|
|
933
|
+
// Set route params directly
|
|
934
|
+
ctx.params = match.params;
|
|
935
|
+
// Set serializers for fast JSON response if available
|
|
936
|
+
if (match._serializer) {
|
|
937
|
+
ctx.setSerializers(match._serializer);
|
|
938
|
+
}
|
|
939
|
+
// Auto-parse body for POST/PUT/PATCH if body exists
|
|
940
|
+
// This maintains backwards compatibility while keeping lazy-loading for GET
|
|
941
|
+
const method = ctx.method;
|
|
942
|
+
if (method === 'POST' || method === 'PUT' || method === 'PATCH') {
|
|
943
|
+
// Only parse if there's actually a body (Content-Length > 0 or Transfer-Encoding)
|
|
944
|
+
const contentLength = req.headers['content-length'];
|
|
945
|
+
const transferEncoding = req.headers['transfer-encoding'];
|
|
946
|
+
const hasBody = (contentLength && contentLength !== '0') || transferEncoding;
|
|
947
|
+
if (hasBody) {
|
|
948
|
+
await ctx.getBody();
|
|
949
|
+
}
|
|
950
|
+
}
|
|
951
|
+
// Fast path: no middleware
|
|
952
|
+
let response;
|
|
953
|
+
if (this.globalMiddlewares.length === 0 && match.middlewares.length === 0) {
|
|
954
|
+
// Direct handler execution (skip middleware executor)
|
|
955
|
+
response = await this.executeHandlerDirect(ctx, match.handler);
|
|
945
956
|
}
|
|
946
957
|
else {
|
|
947
|
-
|
|
958
|
+
// Combine global and route-specific middleware
|
|
959
|
+
const allMiddlewares = this.globalMiddlewares.length === 0
|
|
960
|
+
? match.middlewares
|
|
961
|
+
: match.middlewares.length === 0
|
|
962
|
+
? this.globalMiddlewares
|
|
963
|
+
: [...this.globalMiddlewares, ...match.middlewares];
|
|
964
|
+
// Execute middleware chain and handler with hooks
|
|
965
|
+
response = await this.middlewareExecutor.executeWithHooks(ctx, allMiddlewares, match.handler, this.lifecycleHooks, this.dependencies);
|
|
948
966
|
}
|
|
949
|
-
// Combine global and route-specific middleware
|
|
950
|
-
const allMiddlewares = [...this.globalMiddlewares, ...match.middlewares];
|
|
951
|
-
// Execute middleware chain and handler with hooks
|
|
952
|
-
response = await this.middlewareExecutor.executeWithHooks(ctx, allMiddlewares, match.handler, this.lifecycleHooks, this.dependencies);
|
|
953
967
|
// === HOOK: onResponse ===
|
|
954
968
|
if (this.lifecycleHooks.onResponse) {
|
|
955
969
|
const hookResult = await this.lifecycleHooks.onResponse(ctx, response);
|
|
956
|
-
if (
|
|
970
|
+
if (hookResult && typeof hookResult === 'object' && 'statusCode' in hookResult) {
|
|
957
971
|
response = hookResult;
|
|
958
972
|
}
|
|
959
973
|
}
|
|
960
974
|
// Send response
|
|
961
975
|
await this.sendResponse(res, response, ctx);
|
|
976
|
+
this.cleanupRequest(ctx);
|
|
962
977
|
}
|
|
963
978
|
catch (error) {
|
|
979
|
+
await this.handleError(error, ctx, res);
|
|
980
|
+
}
|
|
981
|
+
}
|
|
982
|
+
/**
|
|
983
|
+
* Execute handler directly without middleware (fast path)
|
|
984
|
+
*/
|
|
985
|
+
async executeHandlerDirect(ctx, handler) {
|
|
986
|
+
// === HOOK: beforeHandler ===
|
|
987
|
+
if (this.lifecycleHooks.beforeHandler) {
|
|
988
|
+
const hookResult = await this.lifecycleHooks.beforeHandler(ctx);
|
|
989
|
+
if (hookResult && typeof hookResult === 'object' && 'statusCode' in hookResult) {
|
|
990
|
+
return hookResult;
|
|
991
|
+
}
|
|
992
|
+
}
|
|
993
|
+
let result = await handler(ctx, this.dependencies);
|
|
994
|
+
// If handler returns an Error, throw it
|
|
995
|
+
if (result instanceof Error) {
|
|
996
|
+
result._isIntentional = true;
|
|
997
|
+
throw result;
|
|
998
|
+
}
|
|
999
|
+
// === HOOK: afterHandler ===
|
|
1000
|
+
if (this.lifecycleHooks.afterHandler) {
|
|
1001
|
+
const transformedResult = await this.lifecycleHooks.afterHandler(ctx, result);
|
|
1002
|
+
if (transformedResult !== undefined) {
|
|
1003
|
+
result = transformedResult;
|
|
1004
|
+
}
|
|
1005
|
+
}
|
|
1006
|
+
// If result is a Response, return it
|
|
1007
|
+
if (result && typeof result === 'object' && 'statusCode' in result && 'body' in result) {
|
|
1008
|
+
return result;
|
|
1009
|
+
}
|
|
1010
|
+
// Otherwise, wrap in JSON response
|
|
1011
|
+
return ctx.json(result);
|
|
1012
|
+
}
|
|
1013
|
+
/**
|
|
1014
|
+
* Cleanup request resources
|
|
1015
|
+
*/
|
|
1016
|
+
cleanupRequest(ctx) {
|
|
1017
|
+
// Dispose request-scoped stores
|
|
1018
|
+
if (ctx.disposeRequestStores) {
|
|
1019
|
+
ctx.disposeRequestStores();
|
|
1020
|
+
}
|
|
1021
|
+
// Release context back to pool
|
|
1022
|
+
this.contextPool.release(ctx);
|
|
1023
|
+
}
|
|
1024
|
+
/**
|
|
1025
|
+
* Handle errors
|
|
1026
|
+
*/
|
|
1027
|
+
async handleError(error, ctx, res) {
|
|
1028
|
+
try {
|
|
964
1029
|
// === HOOK: onError ===
|
|
965
1030
|
if (ctx && this.lifecycleHooks.onError) {
|
|
966
1031
|
try {
|
|
967
1032
|
const hookResult = await this.lifecycleHooks.onError(ctx, error);
|
|
968
|
-
if (
|
|
1033
|
+
if (hookResult && typeof hookResult === 'object' && 'statusCode' in hookResult) {
|
|
969
1034
|
await this.sendResponse(res, hookResult, ctx);
|
|
1035
|
+
this.cleanupRequest(ctx);
|
|
970
1036
|
return;
|
|
971
1037
|
}
|
|
972
1038
|
}
|
|
973
1039
|
catch (hookError) {
|
|
974
|
-
// Hook itself threw an error, continue to default error handler
|
|
975
1040
|
console.error('onError hook failed:', hookError);
|
|
976
1041
|
}
|
|
977
1042
|
}
|
|
978
1043
|
// Handle errors with default error handler
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
}
|
|
1044
|
+
const errorResponse = await this.errorHandler(error, ctx);
|
|
1045
|
+
// === HOOK: onResponse (for error responses) ===
|
|
1046
|
+
if (ctx && this.lifecycleHooks.onResponse) {
|
|
1047
|
+
const hookResult = await this.lifecycleHooks.onResponse(ctx, errorResponse);
|
|
1048
|
+
if (hookResult && typeof hookResult === 'object' && 'statusCode' in hookResult) {
|
|
1049
|
+
await this.sendResponse(res, hookResult, ctx);
|
|
1050
|
+
this.cleanupRequest(ctx);
|
|
1051
|
+
return;
|
|
988
1052
|
}
|
|
989
|
-
await this.sendResponse(res, errorResponse, ctx);
|
|
990
|
-
}
|
|
991
|
-
catch (handlerError) {
|
|
992
|
-
// Fallback error response
|
|
993
|
-
res.writeHead(500, { 'Content-Type': 'text/plain' });
|
|
994
|
-
res.end('Internal Server Error');
|
|
995
1053
|
}
|
|
1054
|
+
await this.sendResponse(res, errorResponse, ctx);
|
|
996
1055
|
}
|
|
997
|
-
|
|
998
|
-
//
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
this.contextPool.release(ctx);
|
|
1005
|
-
}
|
|
1056
|
+
catch (handlerError) {
|
|
1057
|
+
// Fallback error response
|
|
1058
|
+
res.writeHead(500, { 'Content-Type': 'text/plain' });
|
|
1059
|
+
res.end('Internal Server Error');
|
|
1060
|
+
}
|
|
1061
|
+
if (ctx) {
|
|
1062
|
+
this.cleanupRequest(ctx);
|
|
1006
1063
|
}
|
|
1007
1064
|
}
|
|
1008
1065
|
/**
|
|
@@ -1017,12 +1074,59 @@ class Application {
|
|
|
1017
1074
|
}
|
|
1018
1075
|
/**
|
|
1019
1076
|
* Send HTTP response
|
|
1077
|
+
* Optimized for minimal overhead - key for benchmark performance
|
|
1020
1078
|
*/
|
|
1021
1079
|
async sendResponse(res, response, ctx) {
|
|
1022
|
-
//
|
|
1080
|
+
// Handle stream responses separately
|
|
1081
|
+
if (response.stream) {
|
|
1082
|
+
res.statusCode = response.statusCode;
|
|
1083
|
+
const headers = response.headers;
|
|
1084
|
+
for (const key in headers) {
|
|
1085
|
+
const value = headers[key];
|
|
1086
|
+
if (value !== undefined) {
|
|
1087
|
+
res.setHeader(key, value);
|
|
1088
|
+
}
|
|
1089
|
+
}
|
|
1090
|
+
response.stream.pipe(res);
|
|
1091
|
+
return;
|
|
1092
|
+
}
|
|
1093
|
+
const body = response.body;
|
|
1094
|
+
const headers = response.headers;
|
|
1095
|
+
// Fast path for JSON responses (most common case)
|
|
1096
|
+
// Use writeHead for single syscall instead of multiple setHeader calls
|
|
1097
|
+
if (headers['Content-Type'] === 'application/json') {
|
|
1098
|
+
// Calculate content length for proper HTTP behavior
|
|
1099
|
+
const contentLength = Buffer.byteLength(body, 'utf8');
|
|
1100
|
+
// Check if we need to set cookies
|
|
1101
|
+
let setCookies = null;
|
|
1102
|
+
if ('getSetCookieHeaders' in ctx && typeof ctx.getSetCookieHeaders === 'function') {
|
|
1103
|
+
const cookies = ctx.getSetCookieHeaders();
|
|
1104
|
+
if (cookies.length > 0) {
|
|
1105
|
+
setCookies = cookies;
|
|
1106
|
+
}
|
|
1107
|
+
}
|
|
1108
|
+
// Single writeHead call for all headers
|
|
1109
|
+
if (setCookies) {
|
|
1110
|
+
res.writeHead(response.statusCode, {
|
|
1111
|
+
'Content-Type': 'application/json',
|
|
1112
|
+
'Content-Length': contentLength,
|
|
1113
|
+
'Set-Cookie': setCookies
|
|
1114
|
+
});
|
|
1115
|
+
}
|
|
1116
|
+
else {
|
|
1117
|
+
res.writeHead(response.statusCode, {
|
|
1118
|
+
'Content-Type': 'application/json',
|
|
1119
|
+
'Content-Length': contentLength
|
|
1120
|
+
});
|
|
1121
|
+
}
|
|
1122
|
+
res.end(body);
|
|
1123
|
+
return;
|
|
1124
|
+
}
|
|
1125
|
+
// General path for other response types
|
|
1023
1126
|
res.statusCode = response.statusCode;
|
|
1024
|
-
// Set headers
|
|
1025
|
-
for (const
|
|
1127
|
+
// Set headers using for-in (faster than Object.entries)
|
|
1128
|
+
for (const key in headers) {
|
|
1129
|
+
const value = headers[key];
|
|
1026
1130
|
if (value !== undefined) {
|
|
1027
1131
|
res.setHeader(key, value);
|
|
1028
1132
|
}
|
|
@@ -1034,13 +1138,11 @@ class Application {
|
|
|
1034
1138
|
res.setHeader('Set-Cookie', setCookies);
|
|
1035
1139
|
}
|
|
1036
1140
|
}
|
|
1037
|
-
//
|
|
1038
|
-
if (
|
|
1039
|
-
|
|
1040
|
-
}
|
|
1041
|
-
else {
|
|
1042
|
-
res.end(response.body);
|
|
1141
|
+
// Set Content-Length for non-stream responses
|
|
1142
|
+
if (body && typeof body === 'string') {
|
|
1143
|
+
res.setHeader('Content-Length', Buffer.byteLength(body, 'utf8'));
|
|
1043
1144
|
}
|
|
1145
|
+
res.end(body);
|
|
1044
1146
|
}
|
|
1045
1147
|
/**
|
|
1046
1148
|
* Get all registered routes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application.js","sourceRoot":"","sources":["../../src/core/application.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"application.js","sourceRoot":"","sources":["../../src/core/application.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,24 +16,13 @@ export declare class ContextPool {
|
|
|
16
16
|
constructor(maxSize?: number);
|
|
17
17
|
/**
|
|
18
18
|
* Acquire a context from the pool or create a new one
|
|
19
|
+
* Body parsing is now lazy - handlers should use ctx.getBody() for POST/PUT/PATCH
|
|
19
20
|
*/
|
|
20
|
-
acquire(req: IncomingMessage, res: ServerResponse):
|
|
21
|
+
acquire(req: IncomingMessage, res: ServerResponse): Context;
|
|
21
22
|
/**
|
|
22
23
|
* Release a context back to the pool
|
|
23
24
|
*/
|
|
24
25
|
release(ctx: Context): void;
|
|
25
|
-
/**
|
|
26
|
-
* Reset context for reuse
|
|
27
|
-
*/
|
|
28
|
-
private reset;
|
|
29
|
-
/**
|
|
30
|
-
* Clear sensitive data from context
|
|
31
|
-
*/
|
|
32
|
-
private clearContext;
|
|
33
|
-
/**
|
|
34
|
-
* Check if request has a body
|
|
35
|
-
*/
|
|
36
|
-
private hasBody;
|
|
37
26
|
/**
|
|
38
27
|
* Get pool statistics
|
|
39
28
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-pool.d.ts","sourceRoot":"","sources":["../../src/core/context-pool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAEvD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC;;;GAGG;AACH,qBAAa,WAAW;IACpB,OAAO,CAAC,IAAI,CAAqB;IACjC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAa;IAC5B,OAAO,CAAC,MAAM,CAAa;gBAEf,OAAO,GAAE,MAAY;IAIjC
|
|
1
|
+
{"version":3,"file":"context-pool.d.ts","sourceRoot":"","sources":["../../src/core/context-pool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAEvD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC;;;GAGG;AACH,qBAAa,WAAW;IACpB,OAAO,CAAC,IAAI,CAAqB;IACjC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAa;IAC5B,OAAO,CAAC,MAAM,CAAa;gBAEf,OAAO,GAAE,MAAY;IAIjC;;;OAGG;IACH,OAAO,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO;IAqB3D;;OAEG;IACH,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAQ3B;;OAEG;IACH,QAAQ;;;;;;;IAUR;;OAEG;IACH,KAAK,IAAI,IAAI;CAGhB"}
|
|
@@ -20,25 +20,24 @@ class ContextPool {
|
|
|
20
20
|
}
|
|
21
21
|
/**
|
|
22
22
|
* Acquire a context from the pool or create a new one
|
|
23
|
+
* Body parsing is now lazy - handlers should use ctx.getBody() for POST/PUT/PATCH
|
|
23
24
|
*/
|
|
24
|
-
|
|
25
|
+
acquire(req, res) {
|
|
25
26
|
let ctx;
|
|
26
27
|
// Try to reuse from pool
|
|
27
28
|
if (this.pool.length > 0) {
|
|
28
29
|
ctx = this.pool.pop();
|
|
29
30
|
this.reused++;
|
|
30
|
-
|
|
31
|
+
// Use reinitialize instead of creating new object
|
|
32
|
+
ctx.reinitialize(req, res);
|
|
31
33
|
}
|
|
32
34
|
else {
|
|
33
35
|
// Create new context
|
|
34
36
|
ctx = new context_1.ContextImpl(req, res);
|
|
35
37
|
this.created++;
|
|
36
38
|
}
|
|
37
|
-
//
|
|
38
|
-
|
|
39
|
-
const body = await (0, context_1.parseBody)(req);
|
|
40
|
-
ctx.setBody(body);
|
|
41
|
-
}
|
|
39
|
+
// Body parsing removed - now lazy via ctx.getBody()
|
|
40
|
+
// This matches Fastify's architecture for optimal POST performance
|
|
42
41
|
return ctx;
|
|
43
42
|
}
|
|
44
43
|
/**
|
|
@@ -46,48 +45,11 @@ class ContextPool {
|
|
|
46
45
|
*/
|
|
47
46
|
release(ctx) {
|
|
48
47
|
if (this.pool.length < this.maxSize) {
|
|
49
|
-
//
|
|
50
|
-
this.clearContext(ctx);
|
|
48
|
+
// Just push back - reinitialize will handle reset
|
|
51
49
|
this.pool.push(ctx);
|
|
52
50
|
}
|
|
53
51
|
// If pool is full, let GC handle it
|
|
54
52
|
}
|
|
55
|
-
/**
|
|
56
|
-
* Reset context for reuse
|
|
57
|
-
*/
|
|
58
|
-
async reset(ctx, req, res) {
|
|
59
|
-
// Recreate the context with new request/response
|
|
60
|
-
const newCtx = new context_1.ContextImpl(req, res);
|
|
61
|
-
// Copy properties
|
|
62
|
-
Object.assign(ctx, newCtx);
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Clear sensitive data from context
|
|
66
|
-
*/
|
|
67
|
-
clearContext(ctx) {
|
|
68
|
-
ctx.params = {};
|
|
69
|
-
ctx.query = {};
|
|
70
|
-
ctx.body = null;
|
|
71
|
-
// Clear custom properties added by middleware
|
|
72
|
-
const knownProps = new Set([
|
|
73
|
-
'method', 'path', 'url', 'params', 'query', 'body',
|
|
74
|
-
'headers', 'cookies', 'raw', 'response',
|
|
75
|
-
'json', 'html', 'text', 'redirect', 'stream',
|
|
76
|
-
'setParams', 'setBody', 'getSetCookieHeaders'
|
|
77
|
-
]);
|
|
78
|
-
for (const key in ctx) {
|
|
79
|
-
if (!knownProps.has(key)) {
|
|
80
|
-
delete ctx[key];
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
/**
|
|
85
|
-
* Check if request has a body
|
|
86
|
-
*/
|
|
87
|
-
hasBody(req) {
|
|
88
|
-
const method = req.method?.toUpperCase();
|
|
89
|
-
return method === 'POST' || method === 'PUT' || method === 'PATCH';
|
|
90
|
-
}
|
|
91
53
|
/**
|
|
92
54
|
* Get pool statistics
|
|
93
55
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-pool.js","sourceRoot":"","sources":["../../src/core/context-pool.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAGH,
|
|
1
|
+
{"version":3,"file":"context-pool.js","sourceRoot":"","sources":["../../src/core/context-pool.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAGH,uCAAwC;AAGxC;;;GAGG;AACH,MAAa,WAAW;IACZ,IAAI,GAAkB,EAAE,CAAC;IACzB,OAAO,CAAS;IAChB,OAAO,GAAW,CAAC,CAAC;IACpB,MAAM,GAAW,CAAC,CAAC;IAE3B,YAAY,UAAkB,GAAG;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;IAED;;;OAGG;IACH,OAAO,CAAC,GAAoB,EAAE,GAAmB;QAC7C,IAAI,GAAgB,CAAC;QAErB,yBAAyB;QACzB,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAG,CAAC;YACvB,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,kDAAkD;YAClD,GAAG,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC/B,CAAC;aAAM,CAAC;YACJ,qBAAqB;YACrB,GAAG,GAAG,IAAI,qBAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAChC,IAAI,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC;QAED,oDAAoD;QACpD,mEAAmE;QAEnE,OAAO,GAAG,CAAC;IACf,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,GAAY;QAChB,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,kDAAkD;YAClD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAkB,CAAC,CAAC;QACvC,CAAC;QACD,oCAAoC;IACxC,CAAC;IAED;;OAEG;IACH,QAAQ;QACJ,OAAO;YACH,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;YAC1B,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;SAC7E,CAAC;IACN,CAAC;IAED;;OAEG;IACH,KAAK;QACD,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;IACnB,CAAC;CACJ;AAjED,kCAiEC"}
|