@hono/node-server 1.5.0 → 1.7.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/server.mjs CHANGED
@@ -4,6 +4,22 @@ import { createServer as createServerHTTP } from "http";
4
4
  // src/request.ts
5
5
  import { Http2ServerRequest } from "http2";
6
6
  import { Readable } from "stream";
7
+ var GlobalRequest = global.Request;
8
+ var Request = class extends GlobalRequest {
9
+ constructor(input, options) {
10
+ if (typeof input === "object" && getRequestCache in input) {
11
+ input = input[getRequestCache]();
12
+ }
13
+ if (options?.body instanceof ReadableStream) {
14
+ ;
15
+ options.duplex = "half";
16
+ }
17
+ super(input, options);
18
+ }
19
+ };
20
+ Object.defineProperty(global, "Request", {
21
+ value: Request
22
+ });
7
23
  var newRequestFromIncoming = (method, url, incoming) => {
8
24
  const headerRecord = [];
9
25
  const rawHeaders = incoming.rawHeaders;
@@ -20,7 +36,6 @@ var newRequestFromIncoming = (method, url, incoming) => {
20
36
  };
21
37
  if (!(method === "GET" || method === "HEAD")) {
22
38
  init.body = Readable.toWeb(incoming);
23
- init.duplex = "half";
24
39
  }
25
40
  return new Request(url, init);
26
41
  };
@@ -70,7 +85,7 @@ var requestPrototype = {
70
85
  }
71
86
  });
72
87
  });
73
- Object.setPrototypeOf(requestPrototype, global.Request.prototype);
88
+ Object.setPrototypeOf(requestPrototype, Request.prototype);
74
89
  var newRequest = (incoming) => {
75
90
  const req = Object.create(requestPrototype);
76
91
  req[incomingKey] = incoming;
@@ -99,8 +114,9 @@ function writeFromReadableStream(stream, writable) {
99
114
  function cancel(error) {
100
115
  reader.cancel(error).catch(() => {
101
116
  });
102
- if (error)
117
+ if (error) {
103
118
  writable.destroy(error);
119
+ }
104
120
  }
105
121
  function onDrain() {
106
122
  reader.read().then(flow, cancel);
@@ -204,9 +220,6 @@ Object.defineProperty(global, "Response", {
204
220
 
205
221
  // src/globals.ts
206
222
  import crypto from "crypto";
207
- Object.defineProperty(global, "Response", {
208
- value: Response2
209
- });
210
223
  var webFetch = global.fetch;
211
224
  if (typeof global.crypto === "undefined") {
212
225
  global.crypto = crypto;
@@ -233,8 +246,9 @@ var handleResponseError = (e, outgoing) => {
233
246
  console.info("The user aborted a request.");
234
247
  } else {
235
248
  console.error(e);
236
- if (!outgoing.headersSent)
249
+ if (!outgoing.headersSent) {
237
250
  outgoing.writeHead(500, { "Content-Type": "text/plain" });
251
+ }
238
252
  outgoing.end(`Error: ${err.message}`);
239
253
  outgoing.destroy(err);
240
254
  }
@@ -252,12 +266,25 @@ var responseViaCache = (res, outgoing) => {
252
266
  );
253
267
  }
254
268
  };
255
- var responseViaResponseObject = async (res, outgoing) => {
269
+ var responseViaResponseObject = async (res, outgoing, options = {}) => {
256
270
  if (res instanceof Promise) {
257
- res = await res.catch(handleFetchError);
271
+ if (options.errorHandler) {
272
+ try {
273
+ res = await res;
274
+ } catch (err) {
275
+ const errRes = await options.errorHandler(err);
276
+ if (!errRes) {
277
+ return;
278
+ }
279
+ res = errRes;
280
+ }
281
+ } else {
282
+ res = await res.catch(handleFetchError);
283
+ }
258
284
  }
259
285
  try {
260
- if (cacheKey in res) {
286
+ const isCached = cacheKey in res;
287
+ if (isCached) {
261
288
  return responseViaCache(res, outgoing);
262
289
  }
263
290
  } catch (e) {
@@ -266,8 +293,15 @@ var responseViaResponseObject = async (res, outgoing) => {
266
293
  const resHeaderRecord = buildOutgoingHttpHeaders(res.headers);
267
294
  if (res.body) {
268
295
  try {
269
- if (resHeaderRecord["transfer-encoding"] || resHeaderRecord["content-encoding"] || resHeaderRecord["content-length"] || // nginx buffering variant
270
- resHeaderRecord["x-accel-buffering"] && regBuffer.test(resHeaderRecord["x-accel-buffering"]) || !regContentType.test(resHeaderRecord["content-type"])) {
296
+ const {
297
+ "transfer-encoding": transferEncoding,
298
+ "content-encoding": contentEncoding,
299
+ "content-length": contentLength,
300
+ "x-accel-buffering": accelBuffering,
301
+ "content-type": contentType
302
+ } = resHeaderRecord;
303
+ if (transferEncoding || contentEncoding || contentLength || // nginx buffering variant
304
+ accelBuffering && regBuffer.test(accelBuffering) || !regContentType.test(contentType)) {
271
305
  outgoing.writeHead(res.status, resHeaderRecord);
272
306
  await writeFromReadableStream(res.body, outgoing);
273
307
  } else {
@@ -284,23 +318,30 @@ var responseViaResponseObject = async (res, outgoing) => {
284
318
  outgoing.end();
285
319
  }
286
320
  };
287
- var getRequestListener = (fetchCallback) => {
288
- return (incoming, outgoing) => {
321
+ var getRequestListener = (fetchCallback, options = {}) => {
322
+ return async (incoming, outgoing) => {
289
323
  let res;
290
324
  const req = newRequest(incoming);
291
325
  try {
292
- res = fetchCallback(req);
326
+ res = fetchCallback(req, { incoming, outgoing });
293
327
  if (cacheKey in res) {
294
328
  return responseViaCache(res, outgoing);
295
329
  }
296
330
  } catch (e) {
297
331
  if (!res) {
298
- res = handleFetchError(e);
332
+ if (options.errorHandler) {
333
+ res = await options.errorHandler(e);
334
+ if (!res) {
335
+ return;
336
+ }
337
+ } else {
338
+ res = handleFetchError(e);
339
+ }
299
340
  } else {
300
341
  return handleResponseError(e, outgoing);
301
342
  }
302
343
  }
303
- return responseViaResponseObject(res, outgoing);
344
+ return responseViaResponseObject(res, outgoing, options);
304
345
  };
305
346
  };
306
347
 
package/dist/types.d.mts CHANGED
@@ -1,8 +1,16 @@
1
- import { Server, ServerOptions as ServerOptions$1, createServer } from 'node:http';
2
- import { Http2Server, Http2SecureServer, ServerOptions as ServerOptions$3, createServer as createServer$2, SecureServerOptions, createSecureServer } from 'node:http2';
1
+ import { IncomingMessage, ServerResponse, Server, ServerOptions as ServerOptions$1, createServer } from 'node:http';
2
+ import { Http2ServerRequest, Http2ServerResponse, Http2Server, Http2SecureServer, ServerOptions as ServerOptions$3, createServer as createServer$2, SecureServerOptions, createSecureServer } from 'node:http2';
3
3
  import { ServerOptions as ServerOptions$2, createServer as createServer$1 } from 'node:https';
4
4
 
5
- type FetchCallback = (request: Request) => Promise<unknown> | unknown;
5
+ type HttpBindings = {
6
+ incoming: IncomingMessage;
7
+ outgoing: ServerResponse;
8
+ };
9
+ type Http2Bindings = {
10
+ incoming: Http2ServerRequest;
11
+ outgoing: Http2ServerResponse;
12
+ };
13
+ type FetchCallback = (request: Request, env: HttpBindings | Http2Bindings) => Promise<unknown> | unknown;
6
14
  type NextHandlerOption = {
7
15
  fetch: FetchCallback;
8
16
  };
@@ -29,5 +37,6 @@ type Options = {
29
37
  port?: number;
30
38
  hostname?: string;
31
39
  } & ServerOptions;
40
+ type CustomErrorHandler = (err: unknown) => void | Response | Promise<void | Response>;
32
41
 
33
- export { FetchCallback, NextHandlerOption, Options, ServerType };
42
+ export { CustomErrorHandler, FetchCallback, Http2Bindings, HttpBindings, NextHandlerOption, Options, ServerType };
package/dist/types.d.ts CHANGED
@@ -1,8 +1,16 @@
1
- import { Server, ServerOptions as ServerOptions$1, createServer } from 'node:http';
2
- import { Http2Server, Http2SecureServer, ServerOptions as ServerOptions$3, createServer as createServer$2, SecureServerOptions, createSecureServer } from 'node:http2';
1
+ import { IncomingMessage, ServerResponse, Server, ServerOptions as ServerOptions$1, createServer } from 'node:http';
2
+ import { Http2ServerRequest, Http2ServerResponse, Http2Server, Http2SecureServer, ServerOptions as ServerOptions$3, createServer as createServer$2, SecureServerOptions, createSecureServer } from 'node:http2';
3
3
  import { ServerOptions as ServerOptions$2, createServer as createServer$1 } from 'node:https';
4
4
 
5
- type FetchCallback = (request: Request) => Promise<unknown> | unknown;
5
+ type HttpBindings = {
6
+ incoming: IncomingMessage;
7
+ outgoing: ServerResponse;
8
+ };
9
+ type Http2Bindings = {
10
+ incoming: Http2ServerRequest;
11
+ outgoing: Http2ServerResponse;
12
+ };
13
+ type FetchCallback = (request: Request, env: HttpBindings | Http2Bindings) => Promise<unknown> | unknown;
6
14
  type NextHandlerOption = {
7
15
  fetch: FetchCallback;
8
16
  };
@@ -29,5 +37,6 @@ type Options = {
29
37
  port?: number;
30
38
  hostname?: string;
31
39
  } & ServerOptions;
40
+ type CustomErrorHandler = (err: unknown) => void | Response | Promise<void | Response>;
32
41
 
33
- export { FetchCallback, NextHandlerOption, Options, ServerType };
42
+ export { CustomErrorHandler, FetchCallback, Http2Bindings, HttpBindings, NextHandlerOption, Options, ServerType };
package/dist/utils.js CHANGED
@@ -42,8 +42,9 @@ function writeFromReadableStream(stream, writable) {
42
42
  function cancel(error) {
43
43
  reader.cancel(error).catch(() => {
44
44
  });
45
- if (error)
45
+ if (error) {
46
46
  writable.destroy(error);
47
+ }
47
48
  }
48
49
  function onDrain() {
49
50
  reader.read().then(flow, cancel);
package/dist/utils.mjs CHANGED
@@ -17,8 +17,9 @@ function writeFromReadableStream(stream, writable) {
17
17
  function cancel(error) {
18
18
  reader.cancel(error).catch(() => {
19
19
  });
20
- if (error)
20
+ if (error) {
21
21
  writable.destroy(error);
22
+ }
22
23
  }
23
24
  function onDrain() {
24
25
  reader.read().then(flow, cancel);
package/dist/vercel.d.mts CHANGED
@@ -2,6 +2,6 @@ import * as http2 from 'http2';
2
2
  import * as http from 'http';
3
3
  import { Hono } from 'hono';
4
4
 
5
- declare const handle: (app: Hono<any, any, any>) => (incoming: http.IncomingMessage | http2.Http2ServerRequest, outgoing: http.ServerResponse<http.IncomingMessage> | http2.Http2ServerResponse) => void | Promise<void>;
5
+ declare const handle: (app: Hono<any, any, any>) => (incoming: http.IncomingMessage | http2.Http2ServerRequest, outgoing: http.ServerResponse<http.IncomingMessage> | http2.Http2ServerResponse) => Promise<void>;
6
6
 
7
7
  export { handle };
package/dist/vercel.d.ts CHANGED
@@ -2,6 +2,6 @@ import * as http2 from 'http2';
2
2
  import * as http from 'http';
3
3
  import { Hono } from 'hono';
4
4
 
5
- declare const handle: (app: Hono<any, any, any>) => (incoming: http.IncomingMessage | http2.Http2ServerRequest, outgoing: http.ServerResponse<http.IncomingMessage> | http2.Http2ServerResponse) => void | Promise<void>;
5
+ declare const handle: (app: Hono<any, any, any>) => (incoming: http.IncomingMessage | http2.Http2ServerRequest, outgoing: http.ServerResponse<http.IncomingMessage> | http2.Http2ServerResponse) => Promise<void>;
6
6
 
7
7
  export { handle };
package/dist/vercel.js CHANGED
@@ -37,6 +37,22 @@ module.exports = __toCommonJS(vercel_exports);
37
37
  // src/request.ts
38
38
  var import_node_http2 = require("http2");
39
39
  var import_node_stream = require("stream");
40
+ var GlobalRequest = global.Request;
41
+ var Request = class extends GlobalRequest {
42
+ constructor(input, options) {
43
+ if (typeof input === "object" && getRequestCache in input) {
44
+ input = input[getRequestCache]();
45
+ }
46
+ if (options?.body instanceof ReadableStream) {
47
+ ;
48
+ options.duplex = "half";
49
+ }
50
+ super(input, options);
51
+ }
52
+ };
53
+ Object.defineProperty(global, "Request", {
54
+ value: Request
55
+ });
40
56
  var newRequestFromIncoming = (method, url, incoming) => {
41
57
  const headerRecord = [];
42
58
  const rawHeaders = incoming.rawHeaders;
@@ -53,7 +69,6 @@ var newRequestFromIncoming = (method, url, incoming) => {
53
69
  };
54
70
  if (!(method === "GET" || method === "HEAD")) {
55
71
  init.body = import_node_stream.Readable.toWeb(incoming);
56
- init.duplex = "half";
57
72
  }
58
73
  return new Request(url, init);
59
74
  };
@@ -103,7 +118,7 @@ var requestPrototype = {
103
118
  }
104
119
  });
105
120
  });
106
- Object.setPrototypeOf(requestPrototype, global.Request.prototype);
121
+ Object.setPrototypeOf(requestPrototype, Request.prototype);
107
122
  var newRequest = (incoming) => {
108
123
  const req = Object.create(requestPrototype);
109
124
  req[incomingKey] = incoming;
@@ -132,8 +147,9 @@ function writeFromReadableStream(stream, writable) {
132
147
  function cancel(error) {
133
148
  reader.cancel(error).catch(() => {
134
149
  });
135
- if (error)
150
+ if (error) {
136
151
  writable.destroy(error);
152
+ }
137
153
  }
138
154
  function onDrain() {
139
155
  reader.read().then(flow, cancel);
@@ -237,9 +253,6 @@ Object.defineProperty(global, "Response", {
237
253
 
238
254
  // src/globals.ts
239
255
  var import_node_crypto = __toESM(require("crypto"));
240
- Object.defineProperty(global, "Response", {
241
- value: Response2
242
- });
243
256
  var webFetch = global.fetch;
244
257
  if (typeof global.crypto === "undefined") {
245
258
  global.crypto = import_node_crypto.default;
@@ -266,8 +279,9 @@ var handleResponseError = (e, outgoing) => {
266
279
  console.info("The user aborted a request.");
267
280
  } else {
268
281
  console.error(e);
269
- if (!outgoing.headersSent)
282
+ if (!outgoing.headersSent) {
270
283
  outgoing.writeHead(500, { "Content-Type": "text/plain" });
284
+ }
271
285
  outgoing.end(`Error: ${err.message}`);
272
286
  outgoing.destroy(err);
273
287
  }
@@ -285,12 +299,25 @@ var responseViaCache = (res, outgoing) => {
285
299
  );
286
300
  }
287
301
  };
288
- var responseViaResponseObject = async (res, outgoing) => {
302
+ var responseViaResponseObject = async (res, outgoing, options = {}) => {
289
303
  if (res instanceof Promise) {
290
- res = await res.catch(handleFetchError);
304
+ if (options.errorHandler) {
305
+ try {
306
+ res = await res;
307
+ } catch (err) {
308
+ const errRes = await options.errorHandler(err);
309
+ if (!errRes) {
310
+ return;
311
+ }
312
+ res = errRes;
313
+ }
314
+ } else {
315
+ res = await res.catch(handleFetchError);
316
+ }
291
317
  }
292
318
  try {
293
- if (cacheKey in res) {
319
+ const isCached = cacheKey in res;
320
+ if (isCached) {
294
321
  return responseViaCache(res, outgoing);
295
322
  }
296
323
  } catch (e) {
@@ -299,8 +326,15 @@ var responseViaResponseObject = async (res, outgoing) => {
299
326
  const resHeaderRecord = buildOutgoingHttpHeaders(res.headers);
300
327
  if (res.body) {
301
328
  try {
302
- if (resHeaderRecord["transfer-encoding"] || resHeaderRecord["content-encoding"] || resHeaderRecord["content-length"] || // nginx buffering variant
303
- resHeaderRecord["x-accel-buffering"] && regBuffer.test(resHeaderRecord["x-accel-buffering"]) || !regContentType.test(resHeaderRecord["content-type"])) {
329
+ const {
330
+ "transfer-encoding": transferEncoding,
331
+ "content-encoding": contentEncoding,
332
+ "content-length": contentLength,
333
+ "x-accel-buffering": accelBuffering,
334
+ "content-type": contentType
335
+ } = resHeaderRecord;
336
+ if (transferEncoding || contentEncoding || contentLength || // nginx buffering variant
337
+ accelBuffering && regBuffer.test(accelBuffering) || !regContentType.test(contentType)) {
304
338
  outgoing.writeHead(res.status, resHeaderRecord);
305
339
  await writeFromReadableStream(res.body, outgoing);
306
340
  } else {
@@ -317,23 +351,30 @@ var responseViaResponseObject = async (res, outgoing) => {
317
351
  outgoing.end();
318
352
  }
319
353
  };
320
- var getRequestListener = (fetchCallback) => {
321
- return (incoming, outgoing) => {
354
+ var getRequestListener = (fetchCallback, options = {}) => {
355
+ return async (incoming, outgoing) => {
322
356
  let res;
323
357
  const req = newRequest(incoming);
324
358
  try {
325
- res = fetchCallback(req);
359
+ res = fetchCallback(req, { incoming, outgoing });
326
360
  if (cacheKey in res) {
327
361
  return responseViaCache(res, outgoing);
328
362
  }
329
363
  } catch (e) {
330
364
  if (!res) {
331
- res = handleFetchError(e);
365
+ if (options.errorHandler) {
366
+ res = await options.errorHandler(e);
367
+ if (!res) {
368
+ return;
369
+ }
370
+ } else {
371
+ res = handleFetchError(e);
372
+ }
332
373
  } else {
333
374
  return handleResponseError(e, outgoing);
334
375
  }
335
376
  }
336
- return responseViaResponseObject(res, outgoing);
377
+ return responseViaResponseObject(res, outgoing, options);
337
378
  };
338
379
  };
339
380
 
package/dist/vercel.mjs CHANGED
@@ -1,6 +1,22 @@
1
1
  // src/request.ts
2
2
  import { Http2ServerRequest } from "http2";
3
3
  import { Readable } from "stream";
4
+ var GlobalRequest = global.Request;
5
+ var Request = class extends GlobalRequest {
6
+ constructor(input, options) {
7
+ if (typeof input === "object" && getRequestCache in input) {
8
+ input = input[getRequestCache]();
9
+ }
10
+ if (options?.body instanceof ReadableStream) {
11
+ ;
12
+ options.duplex = "half";
13
+ }
14
+ super(input, options);
15
+ }
16
+ };
17
+ Object.defineProperty(global, "Request", {
18
+ value: Request
19
+ });
4
20
  var newRequestFromIncoming = (method, url, incoming) => {
5
21
  const headerRecord = [];
6
22
  const rawHeaders = incoming.rawHeaders;
@@ -17,7 +33,6 @@ var newRequestFromIncoming = (method, url, incoming) => {
17
33
  };
18
34
  if (!(method === "GET" || method === "HEAD")) {
19
35
  init.body = Readable.toWeb(incoming);
20
- init.duplex = "half";
21
36
  }
22
37
  return new Request(url, init);
23
38
  };
@@ -67,7 +82,7 @@ var requestPrototype = {
67
82
  }
68
83
  });
69
84
  });
70
- Object.setPrototypeOf(requestPrototype, global.Request.prototype);
85
+ Object.setPrototypeOf(requestPrototype, Request.prototype);
71
86
  var newRequest = (incoming) => {
72
87
  const req = Object.create(requestPrototype);
73
88
  req[incomingKey] = incoming;
@@ -96,8 +111,9 @@ function writeFromReadableStream(stream, writable) {
96
111
  function cancel(error) {
97
112
  reader.cancel(error).catch(() => {
98
113
  });
99
- if (error)
114
+ if (error) {
100
115
  writable.destroy(error);
116
+ }
101
117
  }
102
118
  function onDrain() {
103
119
  reader.read().then(flow, cancel);
@@ -201,9 +217,6 @@ Object.defineProperty(global, "Response", {
201
217
 
202
218
  // src/globals.ts
203
219
  import crypto from "crypto";
204
- Object.defineProperty(global, "Response", {
205
- value: Response2
206
- });
207
220
  var webFetch = global.fetch;
208
221
  if (typeof global.crypto === "undefined") {
209
222
  global.crypto = crypto;
@@ -230,8 +243,9 @@ var handleResponseError = (e, outgoing) => {
230
243
  console.info("The user aborted a request.");
231
244
  } else {
232
245
  console.error(e);
233
- if (!outgoing.headersSent)
246
+ if (!outgoing.headersSent) {
234
247
  outgoing.writeHead(500, { "Content-Type": "text/plain" });
248
+ }
235
249
  outgoing.end(`Error: ${err.message}`);
236
250
  outgoing.destroy(err);
237
251
  }
@@ -249,12 +263,25 @@ var responseViaCache = (res, outgoing) => {
249
263
  );
250
264
  }
251
265
  };
252
- var responseViaResponseObject = async (res, outgoing) => {
266
+ var responseViaResponseObject = async (res, outgoing, options = {}) => {
253
267
  if (res instanceof Promise) {
254
- res = await res.catch(handleFetchError);
268
+ if (options.errorHandler) {
269
+ try {
270
+ res = await res;
271
+ } catch (err) {
272
+ const errRes = await options.errorHandler(err);
273
+ if (!errRes) {
274
+ return;
275
+ }
276
+ res = errRes;
277
+ }
278
+ } else {
279
+ res = await res.catch(handleFetchError);
280
+ }
255
281
  }
256
282
  try {
257
- if (cacheKey in res) {
283
+ const isCached = cacheKey in res;
284
+ if (isCached) {
258
285
  return responseViaCache(res, outgoing);
259
286
  }
260
287
  } catch (e) {
@@ -263,8 +290,15 @@ var responseViaResponseObject = async (res, outgoing) => {
263
290
  const resHeaderRecord = buildOutgoingHttpHeaders(res.headers);
264
291
  if (res.body) {
265
292
  try {
266
- if (resHeaderRecord["transfer-encoding"] || resHeaderRecord["content-encoding"] || resHeaderRecord["content-length"] || // nginx buffering variant
267
- resHeaderRecord["x-accel-buffering"] && regBuffer.test(resHeaderRecord["x-accel-buffering"]) || !regContentType.test(resHeaderRecord["content-type"])) {
293
+ const {
294
+ "transfer-encoding": transferEncoding,
295
+ "content-encoding": contentEncoding,
296
+ "content-length": contentLength,
297
+ "x-accel-buffering": accelBuffering,
298
+ "content-type": contentType
299
+ } = resHeaderRecord;
300
+ if (transferEncoding || contentEncoding || contentLength || // nginx buffering variant
301
+ accelBuffering && regBuffer.test(accelBuffering) || !regContentType.test(contentType)) {
268
302
  outgoing.writeHead(res.status, resHeaderRecord);
269
303
  await writeFromReadableStream(res.body, outgoing);
270
304
  } else {
@@ -281,23 +315,30 @@ var responseViaResponseObject = async (res, outgoing) => {
281
315
  outgoing.end();
282
316
  }
283
317
  };
284
- var getRequestListener = (fetchCallback) => {
285
- return (incoming, outgoing) => {
318
+ var getRequestListener = (fetchCallback, options = {}) => {
319
+ return async (incoming, outgoing) => {
286
320
  let res;
287
321
  const req = newRequest(incoming);
288
322
  try {
289
- res = fetchCallback(req);
323
+ res = fetchCallback(req, { incoming, outgoing });
290
324
  if (cacheKey in res) {
291
325
  return responseViaCache(res, outgoing);
292
326
  }
293
327
  } catch (e) {
294
328
  if (!res) {
295
- res = handleFetchError(e);
329
+ if (options.errorHandler) {
330
+ res = await options.errorHandler(e);
331
+ if (!res) {
332
+ return;
333
+ }
334
+ } else {
335
+ res = handleFetchError(e);
336
+ }
296
337
  } else {
297
338
  return handleResponseError(e, outgoing);
298
339
  }
299
340
  }
300
- return responseViaResponseObject(res, outgoing);
341
+ return responseViaResponseObject(res, outgoing, options);
301
342
  };
302
343
  };
303
344
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hono/node-server",
3
- "version": "1.5.0",
3
+ "version": "1.7.0",
4
4
  "description": "Node.js Adapter for Hono",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -45,7 +45,9 @@
45
45
  "prerelease": "yarn build && yarn test",
46
46
  "release": "np",
47
47
  "lint": "eslint --ext js,ts src test",
48
- "lint:fix": "eslint --ext js,ts src test --fix"
48
+ "lint:fix": "eslint --ext js,ts src test --fix",
49
+ "format": "prettier --check \"src/**/*.{js,ts}\" \"test/**/*.{js,ts}\"",
50
+ "format:fix": "prettier --write \"src/**/*.{js,ts}\" \"test/**/*.{js,ts}\""
49
51
  },
50
52
  "license": "MIT",
51
53
  "repository": {
@@ -62,7 +64,7 @@
62
64
  "node": ">=18.14.1"
63
65
  },
64
66
  "devDependencies": {
65
- "@hono/eslint-config": "^0.0.2",
67
+ "@hono/eslint-config": "^0.0.4",
66
68
  "@types/jest": "^29.5.3",
67
69
  "@types/node": "^20.10.0",
68
70
  "@types/supertest": "^2.0.12",
@@ -71,6 +73,7 @@
71
73
  "hono": "^3.11.7",
72
74
  "jest": "^29.6.1",
73
75
  "np": "^7.7.0",
76
+ "prettier": "^3.2.4",
74
77
  "publint": "^0.1.16",
75
78
  "supertest": "^6.3.3",
76
79
  "ts-jest": "^29.1.1",