@faapi/faapi 6.10.1 → 6.11.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/dist/cli/index.js +14 -3
- package/dist/cli/index.js.map +1 -1
- package/dist/index.d.ts +14 -1
- package/dist/index.js +14 -3
- package/dist/index.js.map +1 -1
- package/dist/testing.js +10 -2
- package/dist/testing.js.map +1 -1
- package/package.json +1 -1
package/dist/cli/index.js
CHANGED
|
@@ -7394,6 +7394,9 @@ var init_injectParams = __esm({
|
|
|
7394
7394
|
function wrapResult(result, ctx) {
|
|
7395
7395
|
return wrapOkResult(result, ctx.config);
|
|
7396
7396
|
}
|
|
7397
|
+
function stashHandlerResult(ctx, result) {
|
|
7398
|
+
ctx.__faapiHandlerResult = result;
|
|
7399
|
+
}
|
|
7397
7400
|
function mergeMeta(response, meta) {
|
|
7398
7401
|
const hasMeta = meta.status !== void 0 || Object.keys(meta.headers).length > 0 || meta.setCookies.length > 0;
|
|
7399
7402
|
if (!hasMeta) return response;
|
|
@@ -7462,7 +7465,9 @@ async function invokeHandler(handler, ctx, body, middlewares, injectors) {
|
|
|
7462
7465
|
const result = await injectParamsAsync(handler, ctx, body, injectors);
|
|
7463
7466
|
const sseResponse = pickSseAndAutoClose();
|
|
7464
7467
|
if (sseResponse) return sseResponse;
|
|
7465
|
-
|
|
7468
|
+
const response = await toResponse(wrapResult(result, ctx), meta);
|
|
7469
|
+
if (!(result instanceof Response)) stashHandlerResult(ctx, result);
|
|
7470
|
+
return response;
|
|
7466
7471
|
} catch (err) {
|
|
7467
7472
|
autoCloseSseOnError();
|
|
7468
7473
|
throw err;
|
|
@@ -7473,7 +7478,9 @@ async function invokeHandler(handler, ctx, body, middlewares, injectors) {
|
|
|
7473
7478
|
const result = await injectParamsAsync(handler, ctx, body, injectors);
|
|
7474
7479
|
const sseResponse = pickSseAndAutoClose();
|
|
7475
7480
|
if (sseResponse) return sseResponse;
|
|
7476
|
-
|
|
7481
|
+
const response = await toResponse(wrapResult(result, ctx), meta);
|
|
7482
|
+
if (!(result instanceof Response)) stashHandlerResult(ctx, result);
|
|
7483
|
+
return response;
|
|
7477
7484
|
} catch (err) {
|
|
7478
7485
|
autoCloseSseOnError();
|
|
7479
7486
|
throw err;
|
|
@@ -8575,6 +8582,7 @@ async function handleRequest(routes, rootDir, dist, req, res, outerMiddlewares,
|
|
|
8575
8582
|
globalInjectors
|
|
8576
8583
|
});
|
|
8577
8584
|
const response = outerMiddlewares.length > 0 ? await compose(outerMiddlewares, ctx, routePipeline) : await routePipeline();
|
|
8585
|
+
res.__faapiHandlerResult = ctx.__faapiHandlerResult;
|
|
8578
8586
|
await sendSuccessResponse(response, res);
|
|
8579
8587
|
} catch (err) {
|
|
8580
8588
|
if (res.destroyed || res.writableEnded) return;
|
|
@@ -9791,7 +9799,10 @@ async function createAppBase(options) {
|
|
|
9791
9799
|
resolve3({
|
|
9792
9800
|
status: mockRes.statusCode,
|
|
9793
9801
|
headers: new Headers(mockRes._headers),
|
|
9794
|
-
body: parsed
|
|
9802
|
+
body: parsed,
|
|
9803
|
+
// inject raw 捕获桥(第三跳):handler 原始返回值(handleRequest 从 ctx
|
|
9804
|
+
// 桥接到 res;未捕获时 undefined——语义见 InjectResponse.raw 注释)
|
|
9805
|
+
raw: mockRes.__faapiHandlerResult
|
|
9795
9806
|
});
|
|
9796
9807
|
});
|
|
9797
9808
|
const listeners = server.listeners("request");
|