h3 0.5.4 → 0.5.5

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
@@ -250,11 +250,12 @@ function useBase(base, handler) {
250
250
  };
251
251
  }
252
252
 
253
- function defineEventHandler(handler) {
253
+ function eventHandler(handler) {
254
254
  handler.__is_handler__ = true;
255
255
  return handler;
256
256
  }
257
- function defineLazyEventHandler(factory) {
257
+ const defineEventHandler = eventHandler;
258
+ function lazyEventHandler(factory) {
258
259
  let _promise;
259
260
  let _resolved;
260
261
  const resolveHandler = () => {
@@ -273,13 +274,26 @@ function defineLazyEventHandler(factory) {
273
274
  }
274
275
  return _promise;
275
276
  };
276
- return defineEventHandler((event) => {
277
+ return eventHandler((event) => {
277
278
  if (_resolved) {
278
279
  return _resolved(event);
279
280
  }
280
281
  return resolveHandler().then((handler) => handler(event));
281
282
  });
282
283
  }
284
+ const defineLazyEventHandler = lazyEventHandler;
285
+ function dynamicEventHandler(initial) {
286
+ let current = initial;
287
+ const wrapper = eventHandler((event) => {
288
+ if (current) {
289
+ return current(event);
290
+ }
291
+ });
292
+ wrapper.set = (handler) => {
293
+ current = handler;
294
+ };
295
+ return wrapper;
296
+ }
283
297
  function isEventHandler(input) {
284
298
  return "__is_handler__" in input;
285
299
  }
@@ -290,7 +304,7 @@ function toEventHandler(handler) {
290
304
  if (typeof handler !== "function") {
291
305
  throw new TypeError("Invalid handler. It should be a function:", handler);
292
306
  }
293
- return defineEventHandler((event) => {
307
+ return eventHandler((event) => {
294
308
  return callHandler(handler, event.req, event.res);
295
309
  });
296
310
  }
@@ -356,7 +370,7 @@ function use(app, arg1, arg2, arg3) {
356
370
  }
357
371
  function createAppEventHandler(stack, options) {
358
372
  const spacing = options.debug ? 2 : void 0;
359
- return defineEventHandler(async (event) => {
373
+ return eventHandler(async (event) => {
360
374
  event.req.originalUrl = event.req.originalUrl || event.req.url || "/";
361
375
  const reqUrl = event.req.url || "/";
362
376
  for (const layer of stack) {
@@ -401,7 +415,7 @@ function normalizeLayer(input) {
401
415
  handler = handler.handler;
402
416
  }
403
417
  if (input.lazy) {
404
- handler = defineLazyEventHandler(handler);
418
+ handler = lazyEventHandler(handler);
405
419
  } else if (!isEventHandler(handler)) {
406
420
  handler = toEventHandler(handler);
407
421
  }
@@ -430,7 +444,7 @@ function createRouter() {
430
444
  for (const method of RouterMethods) {
431
445
  router[method] = (path, handle) => router.add(path, handle, method);
432
446
  }
433
- router.handler = defineEventHandler((event) => {
447
+ router.handler = eventHandler((event) => {
434
448
  let path = event.req.url || "/";
435
449
  const queryUrlIndex = path.lastIndexOf("?");
436
450
  if (queryUrlIndex > -1) {
@@ -478,11 +492,14 @@ exports.defineLazyEventHandler = defineLazyEventHandler;
478
492
  exports.defineLazyHandler = defineLazyHandler;
479
493
  exports.defineMiddleware = defineMiddleware;
480
494
  exports.deleteCookie = deleteCookie;
495
+ exports.dynamicEventHandler = dynamicEventHandler;
496
+ exports.eventHandler = eventHandler;
481
497
  exports.isError = isError;
482
498
  exports.isEvent = isEvent;
483
499
  exports.isEventHandler = isEventHandler;
484
500
  exports.isMethod = isMethod;
485
501
  exports.isStream = isStream;
502
+ exports.lazyEventHandler = lazyEventHandler;
486
503
  exports.lazyHandle = lazyHandle;
487
504
  exports.promisifyHandle = promisifyHandle;
488
505
  exports.promisifyHandler = promisifyHandler;
package/dist/index.d.ts CHANGED
@@ -20,9 +20,17 @@ interface EventHandler {
20
20
  '__is_handler__'?: true;
21
21
  (event: CompatibilityEvent): H3Response | Promise<H3Response>;
22
22
  }
23
- declare function defineEventHandler(handler: EventHandler): EventHandler;
23
+ declare function eventHandler(handler: EventHandler): EventHandler;
24
+ /** @deprecated Use eventHandler() */
25
+ declare const defineEventHandler: typeof eventHandler;
24
26
  declare type LazyEventHandler = () => EventHandler | Promise<EventHandler>;
25
- declare function defineLazyEventHandler(factory: LazyEventHandler): EventHandler;
27
+ declare function lazyEventHandler(factory: LazyEventHandler): EventHandler;
28
+ /** @deprecated use lazyEventHandler() */
29
+ declare const defineLazyEventHandler: typeof lazyEventHandler;
30
+ interface DynamicEventHandler extends EventHandler {
31
+ set: (handler: EventHandler) => void;
32
+ }
33
+ declare function dynamicEventHandler(initial?: EventHandler): DynamicEventHandler;
26
34
  declare function isEventHandler(input: any): input is EventHandler;
27
35
  declare type CompatibilityEventHandler = EventHandler | Handler | Middleware;
28
36
  declare function toEventHandler(handler: CompatibilityEventHandler): EventHandler;
@@ -225,4 +233,4 @@ interface Router extends AddRouteShortcuts {
225
233
  }
226
234
  declare function createRouter(): Router;
227
235
 
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 };
236
+ export { AddRouteShortcuts, App, AppOptions, AppUse, 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, 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
@@ -242,11 +242,12 @@ function useBase(base, handler) {
242
242
  };
243
243
  }
244
244
 
245
- function defineEventHandler(handler) {
245
+ function eventHandler(handler) {
246
246
  handler.__is_handler__ = true;
247
247
  return handler;
248
248
  }
249
- function defineLazyEventHandler(factory) {
249
+ const defineEventHandler = eventHandler;
250
+ function lazyEventHandler(factory) {
250
251
  let _promise;
251
252
  let _resolved;
252
253
  const resolveHandler = () => {
@@ -265,13 +266,26 @@ function defineLazyEventHandler(factory) {
265
266
  }
266
267
  return _promise;
267
268
  };
268
- return defineEventHandler((event) => {
269
+ return eventHandler((event) => {
269
270
  if (_resolved) {
270
271
  return _resolved(event);
271
272
  }
272
273
  return resolveHandler().then((handler) => handler(event));
273
274
  });
274
275
  }
276
+ const defineLazyEventHandler = lazyEventHandler;
277
+ function dynamicEventHandler(initial) {
278
+ let current = initial;
279
+ const wrapper = eventHandler((event) => {
280
+ if (current) {
281
+ return current(event);
282
+ }
283
+ });
284
+ wrapper.set = (handler) => {
285
+ current = handler;
286
+ };
287
+ return wrapper;
288
+ }
275
289
  function isEventHandler(input) {
276
290
  return "__is_handler__" in input;
277
291
  }
@@ -282,7 +296,7 @@ function toEventHandler(handler) {
282
296
  if (typeof handler !== "function") {
283
297
  throw new TypeError("Invalid handler. It should be a function:", handler);
284
298
  }
285
- return defineEventHandler((event) => {
299
+ return eventHandler((event) => {
286
300
  return callHandler(handler, event.req, event.res);
287
301
  });
288
302
  }
@@ -348,7 +362,7 @@ function use(app, arg1, arg2, arg3) {
348
362
  }
349
363
  function createAppEventHandler(stack, options) {
350
364
  const spacing = options.debug ? 2 : void 0;
351
- return defineEventHandler(async (event) => {
365
+ return eventHandler(async (event) => {
352
366
  event.req.originalUrl = event.req.originalUrl || event.req.url || "/";
353
367
  const reqUrl = event.req.url || "/";
354
368
  for (const layer of stack) {
@@ -393,7 +407,7 @@ function normalizeLayer(input) {
393
407
  handler = handler.handler;
394
408
  }
395
409
  if (input.lazy) {
396
- handler = defineLazyEventHandler(handler);
410
+ handler = lazyEventHandler(handler);
397
411
  } else if (!isEventHandler(handler)) {
398
412
  handler = toEventHandler(handler);
399
413
  }
@@ -422,7 +436,7 @@ function createRouter() {
422
436
  for (const method of RouterMethods) {
423
437
  router[method] = (path, handle) => router.add(path, handle, method);
424
438
  }
425
- router.handler = defineEventHandler((event) => {
439
+ router.handler = eventHandler((event) => {
426
440
  let path = event.req.url || "/";
427
441
  const queryUrlIndex = path.lastIndexOf("?");
428
442
  if (queryUrlIndex > -1) {
@@ -452,4 +466,4 @@ function createRouter() {
452
466
  return router;
453
467
  }
454
468
 
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 };
469
+ export { H3Error, MIMES, appendHeader, assertMethod, callHandler, createApp, createAppEventHandler, createError, createEvent, createRouter, defaultContentType, defineEventHandler, defineHandle, defineHandler, defineLazyEventHandler, defineLazyHandler, defineMiddleware, deleteCookie, dynamicEventHandler, eventHandler, isError, isEvent, isEventHandler, isMethod, isStream, lazyEventHandler, 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.4",
3
+ "version": "0.5.5",
4
4
  "description": "Tiny JavaScript Server",
5
5
  "repository": "unjs/h3",
6
6
  "license": "MIT",