h3 0.7.0 → 0.7.3

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
@@ -473,7 +473,11 @@ function createRouter() {
473
473
  routes[path] = route = { handlers: {} };
474
474
  _router.insert(path, route);
475
475
  }
476
- route.handlers[method] = toEventHandler(handler);
476
+ if (Array.isArray(method)) {
477
+ method.forEach((m) => addRoute(path, handler, m));
478
+ } else {
479
+ route.handlers[method] = toEventHandler(handler);
480
+ }
477
481
  return router;
478
482
  };
479
483
  router.use = router.add = (path, handler, method) => addRoute(path, handler, method || "all");
@@ -503,8 +507,9 @@ function createRouter() {
503
507
  statusMessage: `Method ${method} is not allowed on this route.`
504
508
  });
505
509
  }
506
- event.event.context.params = matched.params || {};
507
- event.req.context.params = event.event.params;
510
+ const params = matched.params || {};
511
+ event.event.context.params = params;
512
+ event.req.context.params = params;
508
513
  return handler(event);
509
514
  });
510
515
  return router;
package/dist/index.d.ts CHANGED
@@ -12,12 +12,13 @@ interface H3Event {
12
12
  declare type CompatibilityEvent = H3Event | IncomingMessage;
13
13
  declare type _JSONValue<T = string | number | boolean> = T | T[] | Record<string, T>;
14
14
  declare type JSONValue = _JSONValue<_JSONValue>;
15
- declare type H3Response = void | JSONValue | Buffer;
16
- interface EventHandler {
15
+ declare type _H3Response = void | JSONValue | Buffer;
16
+ declare type H3Response = _H3Response | Promise<_H3Response>;
17
+ interface EventHandler<T extends H3Response = H3Response> {
17
18
  '__is_handler__'?: true;
18
- (event: CompatibilityEvent): H3Response | Promise<H3Response>;
19
+ (event: CompatibilityEvent): T;
19
20
  }
20
- declare function defineEventHandler(handler: EventHandler): EventHandler;
21
+ declare function defineEventHandler<T extends H3Response = H3Response>(handler: EventHandler<T>): EventHandler<T>;
21
22
  declare const eventHandler: typeof defineEventHandler;
22
23
  declare type LazyEventHandler = () => EventHandler | Promise<EventHandler>;
23
24
  declare function defineLazyEventHandler(factory: LazyEventHandler): EventHandler;
@@ -52,7 +53,7 @@ declare type PromisifiedHandler = Handler<Promise<any>>;
52
53
  declare type Middleware = (req: IncomingMessage, res: ServerResponse, next: (err?: Error) => any) => any;
53
54
  declare type LazyHandler = () => Handler | Promise<Handler>;
54
55
  declare type Encoding = false | 'ascii' | 'utf8' | 'utf-8' | 'utf16le' | 'ucs2' | 'ucs-2' | 'base64' | 'latin1' | 'binary' | 'hex';
55
- declare type HTTPMethod = 'GET' | 'HEAD' | 'POST' | 'PUT' | 'DELETE' | 'CONNECT' | 'OPTIONS' | 'TRACE';
56
+ declare type HTTPMethod = 'GET' | 'HEAD' | 'PATCH' | 'POST' | 'PUT' | 'DELETE' | 'CONNECT' | 'OPTIONS' | 'TRACE';
56
57
 
57
58
  interface Layer {
58
59
  route: string;
@@ -90,7 +91,7 @@ interface AppOptions {
90
91
  }
91
92
  declare function createApp(options?: AppOptions): App;
92
93
  declare function use(app: App, arg1: string | Handler | InputLayer | InputLayer[], arg2?: Handler | Partial<InputLayer> | Handler[] | Middleware | Middleware[], arg3?: Partial<InputLayer>): App;
93
- declare function createAppEventHandler(stack: Stack, options: AppOptions): EventHandler;
94
+ declare function createAppEventHandler(stack: Stack, options: AppOptions): EventHandler<Promise<void>>;
94
95
 
95
96
  /**
96
97
  * H3 Runtime Error
@@ -233,7 +234,7 @@ declare function isStream(data: any): any;
233
234
  declare function sendStream(event: CompatibilityEvent, data: any): Promise<void>;
234
235
 
235
236
  declare type RouterMethod = Lowercase<HTTPMethod>;
236
- declare type RouterUse = (path: string, handler: CompatibilityEventHandler, method?: RouterMethod) => Router;
237
+ declare type RouterUse = (path: string, handler: CompatibilityEventHandler, method?: RouterMethod | RouterMethod[]) => Router;
237
238
  declare type AddRouteShortcuts = Record<RouterMethod, RouterUse>;
238
239
  interface Router extends AddRouteShortcuts {
239
240
  add: RouterUse;
@@ -242,4 +243,4 @@ interface Router extends AddRouteShortcuts {
242
243
  }
243
244
  declare function createRouter(): Router;
244
245
 
245
- export { AddRouteShortcuts, App, AppOptions, AppUse, CacheConditions, CompatibilityEvent, CompatibilityEventHandler, DynamicEventHandler, 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, dynamicEventHandler, eventHandler, handleCacheHeaders, isError, isEvent, isEventHandler, isMethod, isStream, lazyEventHandler, lazyHandle, promisifyHandle, promisifyHandler, send, sendError, sendRedirect, sendStream, setCookie, toEventHandler, use, useBase, useBody, useCookie, useCookies, useMethod, useQuery, useRawBody };
246
+ export { AddRouteShortcuts, App, AppOptions, AppUse, CacheConditions, CompatibilityEvent, CompatibilityEventHandler, DynamicEventHandler, Encoding, EventHandler, H3Error, H3Event, H3Response, HTTPMethod, Handler, IncomingMessage, InputLayer, InputStack, JSONValue, Layer, LazyEventHandler, LazyHandler, MIMES, Matcher, Middleware, NodeHandler, PromisifiedHandler, Router, RouterMethod, RouterUse, ServerResponse, Stack, appendHeader, assertMethod, callHandler, createApp, createAppEventHandler, createError, createEvent, createRouter, defaultContentType, defineEventHandler, defineHandle, defineHandler, defineLazyEventHandler, defineLazyHandler, defineMiddleware, deleteCookie, dynamicEventHandler, eventHandler, handleCacheHeaders, isError, isEvent, isEventHandler, isMethod, isStream, lazyEventHandler, lazyHandle, promisifyHandle, promisifyHandler, send, sendError, sendRedirect, sendStream, setCookie, toEventHandler, use, useBase, useBody, useCookie, useCookies, useMethod, useQuery, useRawBody };
package/dist/index.mjs CHANGED
@@ -465,7 +465,11 @@ function createRouter() {
465
465
  routes[path] = route = { handlers: {} };
466
466
  _router.insert(path, route);
467
467
  }
468
- route.handlers[method] = toEventHandler(handler);
468
+ if (Array.isArray(method)) {
469
+ method.forEach((m) => addRoute(path, handler, m));
470
+ } else {
471
+ route.handlers[method] = toEventHandler(handler);
472
+ }
469
473
  return router;
470
474
  };
471
475
  router.use = router.add = (path, handler, method) => addRoute(path, handler, method || "all");
@@ -495,8 +499,9 @@ function createRouter() {
495
499
  statusMessage: `Method ${method} is not allowed on this route.`
496
500
  });
497
501
  }
498
- event.event.context.params = matched.params || {};
499
- event.req.context.params = event.event.params;
502
+ const params = matched.params || {};
503
+ event.event.context.params = params;
504
+ event.req.context.params = params;
500
505
  return handler(event);
501
506
  });
502
507
  return router;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "h3",
3
- "version": "0.7.0",
3
+ "version": "0.7.3",
4
4
  "description": "Tiny JavaScript Server",
5
5
  "repository": "unjs/h3",
6
6
  "license": "MIT",