h3 0.5.0 → 0.5.1

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
@@ -68,7 +68,11 @@ function defineLazyEventHandler(factory) {
68
68
  }
69
69
  if (!_promise) {
70
70
  _promise = Promise.resolve(factory()).then((r) => {
71
- _resolved = r.default || 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);
72
76
  return _resolved;
73
77
  });
74
78
  }
@@ -88,6 +92,9 @@ function toEventHandler(handler) {
88
92
  if (isEventHandler(handler)) {
89
93
  return handler;
90
94
  }
95
+ if (typeof handler !== "function") {
96
+ throw new TypeError("Invalid handler. It should be a function:", handler);
97
+ }
91
98
  return defineEventHandler((event) => {
92
99
  return callHandler(handler, event.req, event.res);
93
100
  });
@@ -305,6 +312,7 @@ function createApp(options = {}) {
305
312
  }
306
313
  };
307
314
  const app = nodeHandler;
315
+ app.nodeHandler = nodeHandler;
308
316
  app.stack = stack;
309
317
  app.handler = handler;
310
318
  app.use = (arg1, arg2, arg3) => use(app, arg1, arg2, arg3);
@@ -366,14 +374,13 @@ function createAppEventHandler(stack, options) {
366
374
  });
367
375
  }
368
376
  function normalizeLayer(input) {
369
- let handler = input.handler;
377
+ let handler = input.handler || input.handle;
370
378
  if (handler.handler) {
371
379
  handler = handler.handler;
372
380
  }
373
- if (!isEventHandler(handler)) {
374
- if (input.lazy) {
375
- handler = defineLazyHandler(handler);
376
- }
381
+ if (input.lazy) {
382
+ handler = defineLazyEventHandler(handler);
383
+ } else if (!isEventHandler(handler)) {
377
384
  handler = toEventHandler(handler);
378
385
  }
379
386
  return {
package/dist/index.d.ts CHANGED
@@ -21,7 +21,8 @@ interface EventHandler {
21
21
  (event: CompatibilityEvent): H3Response | Promise<H3Response>;
22
22
  }
23
23
  declare function defineEventHandler(handler: EventHandler): EventHandler;
24
- declare function defineLazyEventHandler(factory: () => EventHandler | Promise<EventHandler>): EventHandler;
24
+ declare type LazyEventHandler = () => EventHandler | Promise<EventHandler>;
25
+ declare function defineLazyEventHandler(factory: LazyEventHandler): EventHandler;
25
26
  declare function isEventHandler(input: any): input is EventHandler;
26
27
  declare type CompatibilityEventHandler = EventHandler | Handler | Middleware;
27
28
  declare function toEventHandler(handler: CompatibilityEventHandler): EventHandler;
@@ -58,11 +59,11 @@ declare type Stack = Layer[];
58
59
  interface InputLayer {
59
60
  route?: string;
60
61
  match?: Matcher;
61
- handler: Handler | LazyHandler;
62
+ handler: Handler | LazyHandler | EventHandler | LazyEventHandler;
62
63
  lazy?: boolean;
63
- /**
64
- * @deprecated
65
- */
64
+ /** @deprecated */
65
+ handle?: Handler;
66
+ /** @deprecated */
66
67
  promisify?: boolean;
67
68
  }
68
69
  declare type InputStack = InputLayer[];
@@ -72,10 +73,11 @@ interface AppUse {
72
73
  (handler: CompatibilityEventHandler | CompatibilityEventHandler[], options?: Partial<InputLayer>): App;
73
74
  (options: InputLayer): App;
74
75
  }
75
- declare type NodeHandler = (req: http.IncomingMessage, res: http.ServerResponse) => void | Promise<void>;
76
+ declare type NodeHandler = (req: http.IncomingMessage, res: http.ServerResponse) => Promise<void>;
76
77
  interface App extends NodeHandler {
77
78
  stack: Stack;
78
79
  handler: EventHandler;
80
+ nodeHandler: NodeHandler;
79
81
  use: AppUse;
80
82
  }
81
83
  interface AppOptions {
@@ -128,10 +130,10 @@ declare function promisifyHandler(handler: Handler | Middleware): PromisifiedHan
128
130
  /** @deprecated Use defineHandler */
129
131
  declare const promisifyHandle: typeof promisifyHandler;
130
132
  declare function callHandler(handler: Middleware, req: IncomingMessage, res: ServerResponse): Promise<unknown>;
131
- declare function defineLazyHandler(handler: LazyHandler, promisify?: boolean): PromisifiedHandler;
133
+ declare function defineLazyHandler(handler: LazyHandler, promisify?: boolean): Handler;
132
134
  /** @deprecated Use defineLazyHandler */
133
135
  declare const lazyHandle: typeof defineLazyHandler;
134
- declare function useBase(base: string, handler: PromisifiedHandler): PromisifiedHandler;
136
+ declare function useBase(base: string, handler: Handler): Handler;
135
137
 
136
138
  /**
137
139
  * Reads body of the request and returns encoded raw string (default) or `Buffer` if encoding if falsy.
@@ -222,4 +224,4 @@ interface Router extends AddRouteShortcuts {
222
224
  }
223
225
  declare function createRouter(): Router;
224
226
 
225
- export { AddRouteShortcuts, App, AppOptions, AppUse, CompatibilityEvent, CompatibilityEventHandler, EventHandler, H3Error, H3Event, H3Response, InputLayer, InputStack, JSONValue, Layer, MIMES, Matcher, NodeHandler, Router, RouterMethod, RouterUse, 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 };
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 };
package/dist/index.mjs CHANGED
@@ -60,7 +60,11 @@ function defineLazyEventHandler(factory) {
60
60
  }
61
61
  if (!_promise) {
62
62
  _promise = Promise.resolve(factory()).then((r) => {
63
- _resolved = r.default || 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);
64
68
  return _resolved;
65
69
  });
66
70
  }
@@ -80,6 +84,9 @@ function toEventHandler(handler) {
80
84
  if (isEventHandler(handler)) {
81
85
  return handler;
82
86
  }
87
+ if (typeof handler !== "function") {
88
+ throw new TypeError("Invalid handler. It should be a function:", handler);
89
+ }
83
90
  return defineEventHandler((event) => {
84
91
  return callHandler(handler, event.req, event.res);
85
92
  });
@@ -297,6 +304,7 @@ function createApp(options = {}) {
297
304
  }
298
305
  };
299
306
  const app = nodeHandler;
307
+ app.nodeHandler = nodeHandler;
300
308
  app.stack = stack;
301
309
  app.handler = handler;
302
310
  app.use = (arg1, arg2, arg3) => use(app, arg1, arg2, arg3);
@@ -358,14 +366,13 @@ function createAppEventHandler(stack, options) {
358
366
  });
359
367
  }
360
368
  function normalizeLayer(input) {
361
- let handler = input.handler;
369
+ let handler = input.handler || input.handle;
362
370
  if (handler.handler) {
363
371
  handler = handler.handler;
364
372
  }
365
- if (!isEventHandler(handler)) {
366
- if (input.lazy) {
367
- handler = defineLazyHandler(handler);
368
- }
373
+ if (input.lazy) {
374
+ handler = defineLazyEventHandler(handler);
375
+ } else if (!isEventHandler(handler)) {
369
376
  handler = toEventHandler(handler);
370
377
  }
371
378
  return {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "h3",
3
- "version": "0.5.0",
3
+ "version": "0.5.1",
4
4
  "description": "Tiny JavaScript Server",
5
5
  "repository": "unjs/h3",
6
6
  "license": "MIT",