summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJared Flatow <jflatow@gmail.com>2023-10-27 04:34:41 -0700
committerGitHub <noreply@github.com>2023-10-27 05:34:41 -0600
commit33565e16ca0f9d2d04e2c43b7f6949106ba8cf18 (patch)
tree8fa7e251d936440c02cdc2ed4a189538effde5f7
parent9ec18c35c7e6207fc96d6b2508c3bf37953c4f93 (diff)
fix(ext/http): patch regression in variadic args to serve handler (#20796)
I'm not sure what was the purpose of trying to be so clever with the args were (maybe an optimization?), but it breaks variadic args as pointed out in #20054. Signed-off-by: Matt Mastracci <matthew@mastracci.com> Co-authored-by: Matt Mastracci <matthew@mastracci.com>
-rw-r--r--ext/http/00_serve.js21
1 files changed, 5 insertions, 16 deletions
diff --git a/ext/http/00_serve.js b/ext/http/00_serve.js
index 2e0c62fef..17a67814b 100644
--- a/ext/http/00_serve.js
+++ b/ext/http/00_serve.js
@@ -435,8 +435,6 @@ function fastSyncResponseOrStream(req, respBody, status) {
*/
function mapToCallback(context, callback, onError) {
const signal = context.abortController.signal;
- const hasCallback = callback.length > 0;
- const hasOneCallback = callback.length === 1;
return async function (req) {
// Get the response from the user-provided callback. If that fails, use onError. If that fails, return a fallback
@@ -444,20 +442,11 @@ function mapToCallback(context, callback, onError) {
let innerRequest;
let response;
try {
- if (hasCallback) {
- innerRequest = new InnerRequest(req, context);
- const request = fromInnerRequest(innerRequest, signal, "immutable");
- if (hasOneCallback) {
- response = await callback(request);
- } else {
- response = await callback(
- request,
- new ServeHandlerInfo(innerRequest),
- );
- }
- } else {
- response = await callback();
- }
+ innerRequest = new InnerRequest(req, context);
+ response = await callback(
+ fromInnerRequest(innerRequest, signal, "immutable"),
+ new ServeHandlerInfo(innerRequest),
+ );
} catch (error) {
try {
response = await onError(error);