h3 0.5.1 → 0.5.4

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/index.cjs CHANGED
@@ -11,114 +11,6 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
11
11
 
12
12
  const destr__default = /*#__PURE__*/_interopDefaultLegacy(destr);
13
13
 
14
- const defineHandler = (handler) => handler;
15
- const defineHandle = defineHandler;
16
- const defineMiddleware = (middleware) => middleware;
17
- function promisifyHandler(handler) {
18
- return function(req, res) {
19
- return callHandler(handler, req, res);
20
- };
21
- }
22
- const promisifyHandle = promisifyHandler;
23
- function callHandler(handler, req, res) {
24
- return new Promise((resolve, reject) => {
25
- const next = (err) => err ? reject(err) : resolve(void 0);
26
- try {
27
- return resolve(handler(req, res, next));
28
- } catch (err) {
29
- next(err);
30
- }
31
- });
32
- }
33
- function defineLazyHandler(handler, promisify) {
34
- let _promise;
35
- const resolve = () => {
36
- if (!_promise) {
37
- _promise = Promise.resolve(handler()).then((r) => promisify ? promisifyHandler(r.default || r) : r.default || r);
38
- }
39
- return _promise;
40
- };
41
- return function(req, res) {
42
- return resolve().then((h) => h(req, res));
43
- };
44
- }
45
- const lazyHandle = defineLazyHandler;
46
- function useBase(base, handler) {
47
- base = ufo.withoutTrailingSlash(base);
48
- if (!base) {
49
- return handler;
50
- }
51
- return function(req, res) {
52
- req.originalUrl = req.originalUrl || req.url || "/";
53
- req.url = ufo.withoutBase(req.url || "/", base);
54
- return handler(req, res);
55
- };
56
- }
57
-
58
- function defineEventHandler(handler) {
59
- handler.__is_handler__ = true;
60
- return handler;
61
- }
62
- function defineLazyEventHandler(factory) {
63
- let _promise;
64
- let _resolved;
65
- const resolveHandler = () => {
66
- if (_resolved) {
67
- return Promise.resolve(_resolved);
68
- }
69
- if (!_promise) {
70
- _promise = Promise.resolve(factory()).then((r) => {
71
- const handler = r.default || r;
72
- if (typeof handler !== "function") {
73
- throw new TypeError("Invalid lazy handler result. It should be a function:", handler);
74
- }
75
- _resolved = toEventHandler(r.default || r);
76
- return _resolved;
77
- });
78
- }
79
- return _promise;
80
- };
81
- return defineEventHandler((event) => {
82
- if (_resolved) {
83
- return _resolved(event);
84
- }
85
- return resolveHandler().then((handler) => handler(event));
86
- });
87
- }
88
- function isEventHandler(input) {
89
- return "__is_handler__" in input;
90
- }
91
- function toEventHandler(handler) {
92
- if (isEventHandler(handler)) {
93
- return handler;
94
- }
95
- if (typeof handler !== "function") {
96
- throw new TypeError("Invalid handler. It should be a function:", handler);
97
- }
98
- return defineEventHandler((event) => {
99
- return callHandler(handler, event.req, event.res);
100
- });
101
- }
102
- function createEvent(req, res) {
103
- const event = {
104
- __is_event__: true,
105
- req,
106
- res
107
- };
108
- event.event = event;
109
- req.event = event;
110
- req.req = req;
111
- req.res = res;
112
- res.event = event;
113
- res.res = res;
114
- res.req.res = res;
115
- res.req.req = req;
116
- return event;
117
- }
118
- function isEvent(input) {
119
- return "__is_event__" in input;
120
- }
121
-
122
14
  function useQuery(event) {
123
15
  return ufo.getQuery(event.req.url || "");
124
16
  }
@@ -177,6 +69,10 @@ async function useBody(event) {
177
69
  return event.req[ParsedBodySymbol];
178
70
  }
179
71
  const body = await useRawBody(event);
72
+ if (event.req.headers["content-type"] === "application/x-www-form-urlencoded") {
73
+ const parsedForm = Object.fromEntries(new URLSearchParams(body));
74
+ return parsedForm;
75
+ }
180
76
  const json = destr__default(body);
181
77
  event.req[ParsedBodySymbol] = json;
182
78
  return json;
@@ -272,30 +168,152 @@ function createError(input) {
272
168
  return err;
273
169
  }
274
170
  function sendError(event, error, debug) {
275
- let h3Error;
276
- if (error instanceof H3Error) {
277
- h3Error = error;
278
- } else {
279
- console.error(error);
280
- h3Error = createError(error);
281
- }
282
171
  if (event.res.writableEnded) {
283
172
  return;
284
173
  }
285
- event.res.statusCode = h3Error.statusCode;
286
- event.res.statusMessage = h3Error.statusMessage;
174
+ const h3Error = isError(error) ? error : createError(error);
287
175
  const responseBody = {
288
- statusCode: event.res.statusCode,
289
- statusMessage: event.res.statusMessage,
176
+ statusCode: h3Error.statusCode,
177
+ statusMessage: h3Error.statusMessage,
290
178
  stack: [],
291
179
  data: h3Error.data
292
180
  };
293
181
  if (debug) {
294
182
  responseBody.stack = (h3Error.stack || "").split("\n").map((l) => l.trim());
295
183
  }
184
+ if (event.res.writableEnded) {
185
+ return;
186
+ }
187
+ event.res.statusCode = h3Error.statusCode;
188
+ event.res.statusMessage = h3Error.statusMessage;
296
189
  event.res.setHeader("Content-Type", MIMES.json);
297
190
  event.res.end(JSON.stringify(responseBody, null, 2));
298
191
  }
192
+ function isError(input) {
193
+ return input instanceof H3Error;
194
+ }
195
+
196
+ const defineHandler = (handler) => handler;
197
+ const defineHandle = defineHandler;
198
+ const defineMiddleware = (middleware) => middleware;
199
+ function promisifyHandler(handler) {
200
+ return function(req, res) {
201
+ return callHandler(handler, req, res);
202
+ };
203
+ }
204
+ const promisifyHandle = promisifyHandler;
205
+ function callHandler(handler, req, res) {
206
+ const isMiddleware = handler.length > 2;
207
+ return new Promise((resolve, reject) => {
208
+ const next = (err) => {
209
+ if (isMiddleware) {
210
+ res.off("close", next);
211
+ res.off("error", next);
212
+ }
213
+ return err ? reject(createError(err)) : resolve(void 0);
214
+ };
215
+ try {
216
+ const returned = handler(req, res, next);
217
+ if (isMiddleware && returned === void 0) {
218
+ res.once("close", next);
219
+ res.once("error", next);
220
+ } else {
221
+ resolve(returned);
222
+ }
223
+ } catch (err) {
224
+ next(err);
225
+ }
226
+ });
227
+ }
228
+ function defineLazyHandler(handler, promisify) {
229
+ let _promise;
230
+ const resolve = () => {
231
+ if (!_promise) {
232
+ _promise = Promise.resolve(handler()).then((r) => promisify ? promisifyHandler(r.default || r) : r.default || r);
233
+ }
234
+ return _promise;
235
+ };
236
+ return function(req, res) {
237
+ return resolve().then((h) => h(req, res));
238
+ };
239
+ }
240
+ const lazyHandle = defineLazyHandler;
241
+ function useBase(base, handler) {
242
+ base = ufo.withoutTrailingSlash(base);
243
+ if (!base) {
244
+ return handler;
245
+ }
246
+ return function(req, res) {
247
+ req.originalUrl = req.originalUrl || req.url || "/";
248
+ req.url = ufo.withoutBase(req.url || "/", base);
249
+ return handler(req, res);
250
+ };
251
+ }
252
+
253
+ function defineEventHandler(handler) {
254
+ handler.__is_handler__ = true;
255
+ return handler;
256
+ }
257
+ function defineLazyEventHandler(factory) {
258
+ let _promise;
259
+ let _resolved;
260
+ const resolveHandler = () => {
261
+ if (_resolved) {
262
+ return Promise.resolve(_resolved);
263
+ }
264
+ if (!_promise) {
265
+ _promise = Promise.resolve(factory()).then((r) => {
266
+ const handler = r.default || r;
267
+ if (typeof handler !== "function") {
268
+ throw new TypeError("Invalid lazy handler result. It should be a function:", handler);
269
+ }
270
+ _resolved = toEventHandler(r.default || r);
271
+ return _resolved;
272
+ });
273
+ }
274
+ return _promise;
275
+ };
276
+ return defineEventHandler((event) => {
277
+ if (_resolved) {
278
+ return _resolved(event);
279
+ }
280
+ return resolveHandler().then((handler) => handler(event));
281
+ });
282
+ }
283
+ function isEventHandler(input) {
284
+ return "__is_handler__" in input;
285
+ }
286
+ function toEventHandler(handler) {
287
+ if (isEventHandler(handler)) {
288
+ return handler;
289
+ }
290
+ if (typeof handler !== "function") {
291
+ throw new TypeError("Invalid handler. It should be a function:", handler);
292
+ }
293
+ return defineEventHandler((event) => {
294
+ return callHandler(handler, event.req, event.res);
295
+ });
296
+ }
297
+ function createEvent(req, res) {
298
+ const event = {
299
+ __is_event__: true,
300
+ req,
301
+ res
302
+ };
303
+ event.event = event;
304
+ req.event = event;
305
+ req.req = req;
306
+ req.res = res;
307
+ res.event = event;
308
+ res.res = res;
309
+ res.req = res.req || {};
310
+ res.req.res = res;
311
+ res.req.req = req;
312
+ return event;
313
+ }
314
+ function isEvent(input) {
315
+ return "__is_event__" in input;
316
+ }
299
317
 
300
318
  function createApp(options = {}) {
301
319
  const stack = [];
@@ -307,8 +325,12 @@ function createApp(options = {}) {
307
325
  } catch (err) {
308
326
  if (options.onError) {
309
327
  await options.onError(err, event);
328
+ } else {
329
+ if (!isError(err)) {
330
+ console.error("[h3]", err);
331
+ }
332
+ await sendError(event, err, !!options.debug);
310
333
  }
311
- await sendError(event, err, !!options.debug);
312
334
  }
313
335
  };
314
336
  const app = nodeHandler;
@@ -456,6 +478,7 @@ exports.defineLazyEventHandler = defineLazyEventHandler;
456
478
  exports.defineLazyHandler = defineLazyHandler;
457
479
  exports.defineMiddleware = defineMiddleware;
458
480
  exports.deleteCookie = deleteCookie;
481
+ exports.isError = isError;
459
482
  exports.isEvent = isEvent;
460
483
  exports.isEventHandler = isEventHandler;
461
484
  exports.isMethod = isMethod;
package/dist/index.d.ts CHANGED
@@ -121,6 +121,7 @@ declare function createError(input: Partial<H3Error>): H3Error;
121
121
  * In the debug mode the stack trace of errors will be return in response.
122
122
  */
123
123
  declare function sendError(event: CompatibilityEvent, error: Error | H3Error, debug?: boolean): void;
124
+ declare function isError(input: any): input is H3Error;
124
125
 
125
126
  declare const defineHandler: <T>(handler: Handler<T, {}>) => Handler<T, {}>;
126
127
  /** @deprecated Use defineHandler */
@@ -224,4 +225,4 @@ interface Router extends AddRouteShortcuts {
224
225
  }
225
226
  declare function createRouter(): Router;
226
227
 
227
- export { AddRouteShortcuts, App, AppOptions, AppUse, CompatibilityEvent, CompatibilityEventHandler, Encoding, EventHandler, H3Error, H3Event, H3Response, HTTPMethod, Handler, IncomingMessage, InputLayer, InputStack, JSONValue, Layer, LazyEventHandler, LazyHandler, MIMES, Matcher, Middleware, NodeHandler, PromisifiedHandler, Router, RouterMethod, RouterUse, ServerResponse, Stack, _JSONValue, appendHeader, assertMethod, callHandler, createApp, createAppEventHandler, createError, createEvent, createRouter, defaultContentType, defineEventHandler, defineHandle, defineHandler, defineLazyEventHandler, defineLazyHandler, defineMiddleware, deleteCookie, isEvent, isEventHandler, isMethod, isStream, lazyHandle, promisifyHandle, promisifyHandler, send, sendError, sendRedirect, sendStream, setCookie, toEventHandler, use, useBase, useBody, useCookie, useCookies, useMethod, useQuery, useRawBody };
228
+ export { AddRouteShortcuts, App, AppOptions, AppUse, CompatibilityEvent, CompatibilityEventHandler, Encoding, EventHandler, H3Error, H3Event, H3Response, HTTPMethod, Handler, IncomingMessage, InputLayer, InputStack, JSONValue, Layer, LazyEventHandler, LazyHandler, MIMES, Matcher, Middleware, NodeHandler, PromisifiedHandler, Router, RouterMethod, RouterUse, ServerResponse, Stack, _JSONValue, appendHeader, assertMethod, callHandler, createApp, createAppEventHandler, createError, createEvent, createRouter, defaultContentType, defineEventHandler, defineHandle, defineHandler, defineLazyEventHandler, defineLazyHandler, defineMiddleware, deleteCookie, isError, isEvent, isEventHandler, isMethod, isStream, lazyHandle, promisifyHandle, promisifyHandler, send, sendError, sendRedirect, sendStream, setCookie, toEventHandler, use, useBase, useBody, useCookie, useCookies, useMethod, useQuery, useRawBody };
package/dist/index.mjs CHANGED
@@ -1,116 +1,8 @@
1
- import { withoutTrailingSlash, withoutBase, getQuery } from 'ufo';
1
+ import { getQuery, withoutTrailingSlash, withoutBase } from 'ufo';
2
2
  import { createRouter as createRouter$1 } from 'radix3';
3
3
  import destr from 'destr';
4
4
  import { parse, serialize } from 'cookie-es';
5
5
 
6
- const defineHandler = (handler) => handler;
7
- const defineHandle = defineHandler;
8
- const defineMiddleware = (middleware) => middleware;
9
- function promisifyHandler(handler) {
10
- return function(req, res) {
11
- return callHandler(handler, req, res);
12
- };
13
- }
14
- const promisifyHandle = promisifyHandler;
15
- function callHandler(handler, req, res) {
16
- return new Promise((resolve, reject) => {
17
- const next = (err) => err ? reject(err) : resolve(void 0);
18
- try {
19
- return resolve(handler(req, res, next));
20
- } catch (err) {
21
- next(err);
22
- }
23
- });
24
- }
25
- function defineLazyHandler(handler, promisify) {
26
- let _promise;
27
- const resolve = () => {
28
- if (!_promise) {
29
- _promise = Promise.resolve(handler()).then((r) => promisify ? promisifyHandler(r.default || r) : r.default || r);
30
- }
31
- return _promise;
32
- };
33
- return function(req, res) {
34
- return resolve().then((h) => h(req, res));
35
- };
36
- }
37
- const lazyHandle = defineLazyHandler;
38
- function useBase(base, handler) {
39
- base = withoutTrailingSlash(base);
40
- if (!base) {
41
- return handler;
42
- }
43
- return function(req, res) {
44
- req.originalUrl = req.originalUrl || req.url || "/";
45
- req.url = withoutBase(req.url || "/", base);
46
- return handler(req, res);
47
- };
48
- }
49
-
50
- function defineEventHandler(handler) {
51
- handler.__is_handler__ = true;
52
- return handler;
53
- }
54
- function defineLazyEventHandler(factory) {
55
- let _promise;
56
- let _resolved;
57
- const resolveHandler = () => {
58
- if (_resolved) {
59
- return Promise.resolve(_resolved);
60
- }
61
- if (!_promise) {
62
- _promise = Promise.resolve(factory()).then((r) => {
63
- const handler = r.default || r;
64
- if (typeof handler !== "function") {
65
- throw new TypeError("Invalid lazy handler result. It should be a function:", handler);
66
- }
67
- _resolved = toEventHandler(r.default || r);
68
- return _resolved;
69
- });
70
- }
71
- return _promise;
72
- };
73
- return defineEventHandler((event) => {
74
- if (_resolved) {
75
- return _resolved(event);
76
- }
77
- return resolveHandler().then((handler) => handler(event));
78
- });
79
- }
80
- function isEventHandler(input) {
81
- return "__is_handler__" in input;
82
- }
83
- function toEventHandler(handler) {
84
- if (isEventHandler(handler)) {
85
- return handler;
86
- }
87
- if (typeof handler !== "function") {
88
- throw new TypeError("Invalid handler. It should be a function:", handler);
89
- }
90
- return defineEventHandler((event) => {
91
- return callHandler(handler, event.req, event.res);
92
- });
93
- }
94
- function createEvent(req, res) {
95
- const event = {
96
- __is_event__: true,
97
- req,
98
- res
99
- };
100
- event.event = event;
101
- req.event = event;
102
- req.req = req;
103
- req.res = res;
104
- res.event = event;
105
- res.res = res;
106
- res.req.res = res;
107
- res.req.req = req;
108
- return event;
109
- }
110
- function isEvent(input) {
111
- return "__is_event__" in input;
112
- }
113
-
114
6
  function useQuery(event) {
115
7
  return getQuery(event.req.url || "");
116
8
  }
@@ -169,6 +61,10 @@ async function useBody(event) {
169
61
  return event.req[ParsedBodySymbol];
170
62
  }
171
63
  const body = await useRawBody(event);
64
+ if (event.req.headers["content-type"] === "application/x-www-form-urlencoded") {
65
+ const parsedForm = Object.fromEntries(new URLSearchParams(body));
66
+ return parsedForm;
67
+ }
172
68
  const json = destr(body);
173
69
  event.req[ParsedBodySymbol] = json;
174
70
  return json;
@@ -264,30 +160,152 @@ function createError(input) {
264
160
  return err;
265
161
  }
266
162
  function sendError(event, error, debug) {
267
- let h3Error;
268
- if (error instanceof H3Error) {
269
- h3Error = error;
270
- } else {
271
- console.error(error);
272
- h3Error = createError(error);
273
- }
274
163
  if (event.res.writableEnded) {
275
164
  return;
276
165
  }
277
- event.res.statusCode = h3Error.statusCode;
278
- event.res.statusMessage = h3Error.statusMessage;
166
+ const h3Error = isError(error) ? error : createError(error);
279
167
  const responseBody = {
280
- statusCode: event.res.statusCode,
281
- statusMessage: event.res.statusMessage,
168
+ statusCode: h3Error.statusCode,
169
+ statusMessage: h3Error.statusMessage,
282
170
  stack: [],
283
171
  data: h3Error.data
284
172
  };
285
173
  if (debug) {
286
174
  responseBody.stack = (h3Error.stack || "").split("\n").map((l) => l.trim());
287
175
  }
176
+ if (event.res.writableEnded) {
177
+ return;
178
+ }
179
+ event.res.statusCode = h3Error.statusCode;
180
+ event.res.statusMessage = h3Error.statusMessage;
288
181
  event.res.setHeader("Content-Type", MIMES.json);
289
182
  event.res.end(JSON.stringify(responseBody, null, 2));
290
183
  }
184
+ function isError(input) {
185
+ return input instanceof H3Error;
186
+ }
187
+
188
+ const defineHandler = (handler) => handler;
189
+ const defineHandle = defineHandler;
190
+ const defineMiddleware = (middleware) => middleware;
191
+ function promisifyHandler(handler) {
192
+ return function(req, res) {
193
+ return callHandler(handler, req, res);
194
+ };
195
+ }
196
+ const promisifyHandle = promisifyHandler;
197
+ function callHandler(handler, req, res) {
198
+ const isMiddleware = handler.length > 2;
199
+ return new Promise((resolve, reject) => {
200
+ const next = (err) => {
201
+ if (isMiddleware) {
202
+ res.off("close", next);
203
+ res.off("error", next);
204
+ }
205
+ return err ? reject(createError(err)) : resolve(void 0);
206
+ };
207
+ try {
208
+ const returned = handler(req, res, next);
209
+ if (isMiddleware && returned === void 0) {
210
+ res.once("close", next);
211
+ res.once("error", next);
212
+ } else {
213
+ resolve(returned);
214
+ }
215
+ } catch (err) {
216
+ next(err);
217
+ }
218
+ });
219
+ }
220
+ function defineLazyHandler(handler, promisify) {
221
+ let _promise;
222
+ const resolve = () => {
223
+ if (!_promise) {
224
+ _promise = Promise.resolve(handler()).then((r) => promisify ? promisifyHandler(r.default || r) : r.default || r);
225
+ }
226
+ return _promise;
227
+ };
228
+ return function(req, res) {
229
+ return resolve().then((h) => h(req, res));
230
+ };
231
+ }
232
+ const lazyHandle = defineLazyHandler;
233
+ function useBase(base, handler) {
234
+ base = withoutTrailingSlash(base);
235
+ if (!base) {
236
+ return handler;
237
+ }
238
+ return function(req, res) {
239
+ req.originalUrl = req.originalUrl || req.url || "/";
240
+ req.url = withoutBase(req.url || "/", base);
241
+ return handler(req, res);
242
+ };
243
+ }
244
+
245
+ function defineEventHandler(handler) {
246
+ handler.__is_handler__ = true;
247
+ return handler;
248
+ }
249
+ function defineLazyEventHandler(factory) {
250
+ let _promise;
251
+ let _resolved;
252
+ const resolveHandler = () => {
253
+ if (_resolved) {
254
+ return Promise.resolve(_resolved);
255
+ }
256
+ if (!_promise) {
257
+ _promise = Promise.resolve(factory()).then((r) => {
258
+ const handler = r.default || r;
259
+ if (typeof handler !== "function") {
260
+ throw new TypeError("Invalid lazy handler result. It should be a function:", handler);
261
+ }
262
+ _resolved = toEventHandler(r.default || r);
263
+ return _resolved;
264
+ });
265
+ }
266
+ return _promise;
267
+ };
268
+ return defineEventHandler((event) => {
269
+ if (_resolved) {
270
+ return _resolved(event);
271
+ }
272
+ return resolveHandler().then((handler) => handler(event));
273
+ });
274
+ }
275
+ function isEventHandler(input) {
276
+ return "__is_handler__" in input;
277
+ }
278
+ function toEventHandler(handler) {
279
+ if (isEventHandler(handler)) {
280
+ return handler;
281
+ }
282
+ if (typeof handler !== "function") {
283
+ throw new TypeError("Invalid handler. It should be a function:", handler);
284
+ }
285
+ return defineEventHandler((event) => {
286
+ return callHandler(handler, event.req, event.res);
287
+ });
288
+ }
289
+ function createEvent(req, res) {
290
+ const event = {
291
+ __is_event__: true,
292
+ req,
293
+ res
294
+ };
295
+ event.event = event;
296
+ req.event = event;
297
+ req.req = req;
298
+ req.res = res;
299
+ res.event = event;
300
+ res.res = res;
301
+ res.req = res.req || {};
302
+ res.req.res = res;
303
+ res.req.req = req;
304
+ return event;
305
+ }
306
+ function isEvent(input) {
307
+ return "__is_event__" in input;
308
+ }
291
309
 
292
310
  function createApp(options = {}) {
293
311
  const stack = [];
@@ -299,8 +317,12 @@ function createApp(options = {}) {
299
317
  } catch (err) {
300
318
  if (options.onError) {
301
319
  await options.onError(err, event);
320
+ } else {
321
+ if (!isError(err)) {
322
+ console.error("[h3]", err);
323
+ }
324
+ await sendError(event, err, !!options.debug);
302
325
  }
303
- await sendError(event, err, !!options.debug);
304
326
  }
305
327
  };
306
328
  const app = nodeHandler;
@@ -430,4 +452,4 @@ function createRouter() {
430
452
  return router;
431
453
  }
432
454
 
433
- export { H3Error, MIMES, appendHeader, assertMethod, callHandler, createApp, createAppEventHandler, createError, createEvent, createRouter, defaultContentType, defineEventHandler, defineHandle, defineHandler, defineLazyEventHandler, defineLazyHandler, defineMiddleware, deleteCookie, isEvent, isEventHandler, isMethod, isStream, lazyHandle, promisifyHandle, promisifyHandler, send, sendError, sendRedirect, sendStream, setCookie, toEventHandler, use, useBase, useBody, useCookie, useCookies, useMethod, useQuery, useRawBody };
455
+ export { H3Error, MIMES, appendHeader, assertMethod, callHandler, createApp, createAppEventHandler, createError, createEvent, createRouter, defaultContentType, defineEventHandler, defineHandle, defineHandler, defineLazyEventHandler, defineLazyHandler, defineMiddleware, deleteCookie, isError, isEvent, isEventHandler, isMethod, isStream, lazyHandle, promisifyHandle, promisifyHandler, send, sendError, sendRedirect, sendStream, setCookie, toEventHandler, use, useBase, useBody, useCookie, useCookies, useMethod, useQuery, useRawBody };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "h3",
3
- "version": "0.5.1",
3
+ "version": "0.5.4",
4
4
  "description": "Tiny JavaScript Server",
5
5
  "repository": "unjs/h3",
6
6
  "license": "MIT",