@tanstack/start-server-core 1.131.7 → 1.132.0-alpha.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.
Files changed (63) hide show
  1. package/dist/esm/createStartHandler.d.ts +1 -1
  2. package/dist/esm/createStartHandler.js +8 -9
  3. package/dist/esm/createStartHandler.js.map +1 -1
  4. package/dist/esm/index.d.ts +1 -1
  5. package/dist/esm/index.js +6 -90
  6. package/dist/esm/index.js.map +1 -1
  7. package/dist/esm/loadVirtualModule.js +2 -0
  8. package/dist/esm/loadVirtualModule.js.map +1 -1
  9. package/dist/esm/request-response.d.ts +124 -0
  10. package/dist/esm/request-response.js +177 -0
  11. package/dist/esm/request-response.js.map +1 -0
  12. package/dist/esm/router-manifest.js +6 -3
  13. package/dist/esm/router-manifest.js.map +1 -1
  14. package/dist/esm/server-functions-handler.js +25 -59
  15. package/dist/esm/server-functions-handler.js.map +1 -1
  16. package/dist/esm/serverRoute.js +1 -2
  17. package/dist/esm/serverRoute.js.map +1 -1
  18. package/dist/esm/session.d.ts +66 -0
  19. package/dist/esm/virtual-modules.d.ts +2 -0
  20. package/dist/esm/virtual-modules.js +2 -1
  21. package/dist/esm/virtual-modules.js.map +1 -1
  22. package/package.json +9 -19
  23. package/src/createStartHandler.ts +7 -7
  24. package/src/global.d.ts +1 -3
  25. package/src/index.tsx +1 -1
  26. package/src/loadVirtualModule.ts +2 -0
  27. package/src/request-response.ts +335 -0
  28. package/src/router-manifest.ts +6 -3
  29. package/src/server-functions-handler.ts +29 -67
  30. package/src/session.ts +75 -0
  31. package/src/tanstack-start.d.ts +4 -0
  32. package/src/virtual-modules.ts +2 -0
  33. package/dist/cjs/constants.cjs +0 -7
  34. package/dist/cjs/constants.cjs.map +0 -1
  35. package/dist/cjs/constants.d.cts +0 -3
  36. package/dist/cjs/createStartHandler.cjs +0 -342
  37. package/dist/cjs/createStartHandler.cjs.map +0 -1
  38. package/dist/cjs/createStartHandler.d.cts +0 -7
  39. package/dist/cjs/h3.cjs +0 -355
  40. package/dist/cjs/h3.cjs.map +0 -1
  41. package/dist/cjs/h3.d.cts +0 -109
  42. package/dist/cjs/index.cjs +0 -257
  43. package/dist/cjs/index.cjs.map +0 -1
  44. package/dist/cjs/index.d.cts +0 -10
  45. package/dist/cjs/loadVirtualModule.cjs +0 -39
  46. package/dist/cjs/loadVirtualModule.cjs.map +0 -1
  47. package/dist/cjs/loadVirtualModule.d.cts +0 -6
  48. package/dist/cjs/router-manifest.cjs +0 -46
  49. package/dist/cjs/router-manifest.cjs.map +0 -1
  50. package/dist/cjs/router-manifest.d.cts +0 -17
  51. package/dist/cjs/server-functions-handler.cjs +0 -181
  52. package/dist/cjs/server-functions-handler.cjs.map +0 -1
  53. package/dist/cjs/server-functions-handler.d.cts +0 -3
  54. package/dist/cjs/serverRoute.cjs +0 -104
  55. package/dist/cjs/serverRoute.cjs.map +0 -1
  56. package/dist/cjs/serverRoute.d.cts +0 -124
  57. package/dist/cjs/virtual-modules.cjs +0 -9
  58. package/dist/cjs/virtual-modules.cjs.map +0 -1
  59. package/dist/cjs/virtual-modules.d.cts +0 -10
  60. package/dist/esm/h3.d.ts +0 -109
  61. package/dist/esm/h3.js +0 -248
  62. package/dist/esm/h3.js.map +0 -1
  63. package/src/h3.ts +0 -492
package/src/h3.ts DELETED
@@ -1,492 +0,0 @@
1
- import { AsyncLocalStorage } from 'node:async_hooks'
2
- import {
3
- H3Event,
4
- appendCorsHeaders as _appendCorsHeaders,
5
- appendCorsPreflightHeaders as _appendCorsPreflightHeaders,
6
- appendHeader as _appendHeader,
7
- appendHeaders as _appendHeaders,
8
- appendResponseHeader as _appendResponseHeader,
9
- appendResponseHeaders as _appendResponseHeaders,
10
- assertMethod as _assertMethod,
11
- clearResponseHeaders as _clearResponseHeaders,
12
- clearSession as _clearSession,
13
- defaultContentType as _defaultContentType,
14
- defineEventHandler as _defineEventHandler,
15
- deleteCookie as _deleteCookie,
16
- eventHandler as _eventHandler,
17
- fetchWithEvent as _fetchWithEvent,
18
- getCookie as _getCookie,
19
- getHeader as _getHeader,
20
- getHeaders as _getHeaders,
21
- getProxyRequestHeaders as _getProxyRequestHeaders,
22
- getQuery as _getQuery,
23
- getRequestFingerprint as _getRequestFingerprint,
24
- getRequestHeader as _getRequestHeader,
25
- getRequestHeaders as _getRequestHeaders,
26
- getRequestHost as _getRequestHost,
27
- getRequestIP as _getRequestIP,
28
- getRequestProtocol as _getRequestProtocol,
29
- getRequestURL as _getRequestURL,
30
- getRequestWebStream as _getRequestWebStream,
31
- getResponseHeader as _getResponseHeader,
32
- getResponseHeaders as _getResponseHeaders,
33
- getResponseStatus as _getResponseStatus,
34
- getResponseStatusText as _getResponseStatusText,
35
- getRouterParam as _getRouterParam,
36
- getRouterParams as _getRouterParams,
37
- getSession as _getSession,
38
- getValidatedQuery as _getValidatedQuery,
39
- getValidatedRouterParams as _getValidatedRouterParams,
40
- handleCacheHeaders as _handleCacheHeaders,
41
- handleCors as _handleCors,
42
- isMethod as _isMethod,
43
- isPreflightRequest as _isPreflightRequest,
44
- parseCookies as _parseCookies,
45
- proxyRequest as _proxyRequest,
46
- readBody as _readBody,
47
- readFormData as _readFormData,
48
- readMultipartFormData as _readMultipartFormData,
49
- readRawBody as _readRawBody,
50
- readValidatedBody as _readValidatedBody,
51
- removeResponseHeader as _removeResponseHeader,
52
- sealSession as _sealSession,
53
- send as _send,
54
- sendError as _sendError,
55
- sendNoContent as _sendNoContent,
56
- sendProxy as _sendProxy,
57
- sendRedirect as _sendRedirect,
58
- sendStream as _sendStream,
59
- sendWebResponse as _sendWebResponse,
60
- setCookie as _setCookie,
61
- setHeader as _setHeader,
62
- setHeaders as _setHeaders,
63
- setResponseHeader as _setResponseHeader,
64
- setResponseHeaders as _setResponseHeaders,
65
- setResponseStatus as _setResponseStatus,
66
- toWebRequest as _toWebRequest,
67
- unsealSession as _unsealSession,
68
- updateSession as _updateSession,
69
- useSession as _useSession,
70
- writeEarlyHints as _writeEarlyHints,
71
- } from 'h3'
72
-
73
- import type {
74
- Encoding,
75
- EventHandler,
76
- HTTPHeaderName,
77
- InferEventInput,
78
- _RequestMiddleware,
79
- _ResponseMiddleware,
80
- } from 'h3'
81
-
82
- const eventStorage = new AsyncLocalStorage()
83
-
84
- function _setContext(event: H3Event, key: string, value: any) {
85
- event.context[key] = value
86
- }
87
-
88
- function _getContext(event: H3Event, key: string) {
89
- return event.context[key]
90
- }
91
-
92
- export function defineMiddleware(options: {
93
- onRequest?: _RequestMiddleware | Array<_RequestMiddleware>
94
- onBeforeResponse?: _ResponseMiddleware | Array<_ResponseMiddleware>
95
- }) {
96
- return options
97
- }
98
-
99
- // function toWebRequestH3(event: H3Event) {
100
- // /**
101
- // * @type {ReadableStream | undefined}
102
- // */
103
- // let readableStream: ReadableStream | undefined
104
-
105
- // const url = _getRequestURL(event)
106
- // const base = {
107
- // // @ts-ignore Undici option
108
- // duplex: 'half',
109
- // method: event.method,
110
- // headers: event.headers,
111
- // }
112
-
113
- // if ((event.node.req as any).body instanceof ArrayBuffer) {
114
- // return new Request(url, {
115
- // ...base,
116
- // body: (event.node.req as any).body,
117
- // })
118
- // }
119
-
120
- // return new Request(url, {
121
- // ...base,
122
- // get body() {
123
- // if (readableStream) {
124
- // return readableStream
125
- // }
126
- // readableStream = _getRequestWebStream(event)
127
- // return readableStream
128
- // },
129
- // })
130
- // }
131
-
132
- export {
133
- H3Error,
134
- H3Event,
135
- MIMES,
136
- callNodeListener,
137
- createApp,
138
- createAppEventHandler,
139
- createEvent,
140
- createRouter,
141
- defineLazyEventHandler,
142
- defineNodeListener,
143
- defineNodeMiddleware,
144
- defineRequestMiddleware,
145
- defineResponseMiddleware,
146
- dynamicEventHandler,
147
- defineWebSocket,
148
- splitCookiesString,
149
- fromNodeMiddleware,
150
- fromPlainHandler,
151
- fromWebHandler,
152
- isError,
153
- isEventHandler,
154
- isWebResponse,
155
- lazyEventHandler,
156
- promisifyNodeListener,
157
- serveStatic,
158
- toEventHandler,
159
- toNodeListener,
160
- toPlainHandler,
161
- toWebHandler,
162
- toWebRequest,
163
- isCorsOriginAllowed,
164
- isStream,
165
- createError,
166
- sanitizeStatusCode,
167
- sanitizeStatusMessage,
168
- useBase,
169
- type AddRouteShortcuts,
170
- type App,
171
- type AppOptions,
172
- type AppUse,
173
- type CacheConditions,
174
- type CreateRouterOptions,
175
- type Duplex,
176
- type DynamicEventHandler,
177
- type Encoding,
178
- type EventHandler,
179
- type EventHandlerObject,
180
- type EventHandlerRequest,
181
- type EventHandlerResponse,
182
- type H3CorsOptions,
183
- type H3EventContext,
184
- type HTTPHeaderName,
185
- type HTTPMethod,
186
- type InferEventInput,
187
- type InputLayer,
188
- type InputStack,
189
- type Layer,
190
- type LazyEventHandler,
191
- type Matcher,
192
- type MultiPartData,
193
- type NodeEventContext,
194
- type NodeListener,
195
- type NodeMiddleware,
196
- type NodePromisifiedHandler,
197
- type PlainHandler,
198
- type PlainRequest,
199
- type PlainResponse,
200
- type ProxyOptions,
201
- type RequestFingerprintOptions,
202
- type RequestHeaders,
203
- type RouteNode,
204
- type Router,
205
- type RouterMethod,
206
- type RouterUse,
207
- type ServeStaticOptions,
208
- type Session,
209
- type SessionConfig,
210
- type SessionData,
211
- type Stack,
212
- type StaticAssetMeta,
213
- type ValidateFunction,
214
- type ValidateResult,
215
- type WebEventContext,
216
- type WebHandler,
217
- type _RequestMiddleware,
218
- type _ResponseMiddleware,
219
- } from 'h3'
220
-
221
- export function defineEventHandler(handler: EventHandler) {
222
- return _defineEventHandler((event) => {
223
- return runWithEvent(event, () => handler(event))
224
- })
225
- }
226
-
227
- export function eventHandler(handler: EventHandler) {
228
- return _eventHandler((event) => {
229
- return runWithEvent(event, () => handler(event))
230
- })
231
- }
232
-
233
- export async function runWithEvent<T>(
234
- event: H3Event,
235
- fn: () => T | Promise<T>,
236
- ): Promise<T> {
237
- return eventStorage.run(event, fn)
238
- }
239
-
240
- export function getEvent() {
241
- const event = eventStorage.getStore() as H3Event | undefined
242
- if (!event) {
243
- throw new Error(
244
- `No HTTPEvent found in AsyncLocalStorage. Make sure you are using the function within the server runtime.`,
245
- )
246
- }
247
- return event
248
- }
249
-
250
- export const HTTPEventSymbol = Symbol('$HTTPEvent')
251
-
252
- export function isEvent(
253
- obj: any,
254
- ): obj is H3Event | { [HTTPEventSymbol]: H3Event } {
255
- return (
256
- typeof obj === 'object' &&
257
- (obj instanceof H3Event ||
258
- obj?.[HTTPEventSymbol] instanceof H3Event ||
259
- obj?.__is_event__ === true)
260
- )
261
- // Implement logic to check if obj is an H3Event
262
- }
263
-
264
- type Tail<T> = T extends [any, ...infer U] ? U : never
265
-
266
- type PrependOverload<
267
- TOriginal extends (...args: Array<any>) => any,
268
- TOverload extends (...args: Array<any>) => any,
269
- > = TOverload & TOriginal
270
-
271
- // add an overload to the function without the event argument
272
- type WrapFunction<TFn extends (...args: Array<any>) => any> = PrependOverload<
273
- TFn,
274
- (
275
- ...args: Parameters<TFn> extends [H3Event, ...infer TArgs]
276
- ? TArgs
277
- : Parameters<TFn>
278
- ) => ReturnType<TFn>
279
- >
280
-
281
- function createWrapperFunction<TFn extends (...args: Array<any>) => any>(
282
- h3Function: TFn,
283
- ): WrapFunction<TFn> {
284
- return function (...args: Array<any>) {
285
- const event = args[0]
286
- if (!isEvent(event)) {
287
- args.unshift(getEvent())
288
- } else {
289
- args[0] =
290
- event instanceof H3Event || (event as any).__is_event__
291
- ? event
292
- : event[HTTPEventSymbol]
293
- }
294
-
295
- return (h3Function as any)(...args)
296
- } as any
297
- }
298
-
299
- // Creating wrappers for each utility and exporting them with their original names
300
- type WrappedReadRawBody = <TEncoding extends Encoding = 'utf8'>(
301
- ...args: Tail<Parameters<typeof _readRawBody<TEncoding>>>
302
- ) => ReturnType<typeof _readRawBody<TEncoding>>
303
- export const readRawBody: PrependOverload<
304
- typeof _readRawBody,
305
- WrappedReadRawBody
306
- > = createWrapperFunction(_readRawBody)
307
- type WrappedReadBody = <T, TEventInput = InferEventInput<'body', H3Event, T>>(
308
- ...args: Tail<Parameters<typeof _readBody<T, H3Event, TEventInput>>>
309
- ) => ReturnType<typeof _readBody<T, H3Event, TEventInput>>
310
- export const readBody: PrependOverload<typeof _readBody, WrappedReadBody> =
311
- createWrapperFunction(_readBody)
312
- type WrappedGetQuery = <
313
- T,
314
- TEventInput = Exclude<InferEventInput<'query', H3Event, T>, undefined>,
315
- >(
316
- ...args: Tail<Parameters<typeof _getQuery<T, H3Event, TEventInput>>>
317
- ) => ReturnType<typeof _getQuery<T, H3Event, TEventInput>>
318
- export const getQuery: PrependOverload<typeof _getQuery, WrappedGetQuery> =
319
- createWrapperFunction(_getQuery)
320
- export const isMethod = createWrapperFunction(_isMethod)
321
- export const isPreflightRequest = createWrapperFunction(_isPreflightRequest)
322
- type WrappedGetValidatedQuery = <
323
- T,
324
- TEventInput = InferEventInput<'query', H3Event, T>,
325
- >(
326
- ...args: Tail<Parameters<typeof _getValidatedQuery<T, H3Event, TEventInput>>>
327
- ) => ReturnType<typeof _getValidatedQuery<T, H3Event, TEventInput>>
328
- export const getValidatedQuery: PrependOverload<
329
- typeof _getValidatedQuery,
330
- WrappedGetValidatedQuery
331
- > = createWrapperFunction(_getValidatedQuery)
332
- export const getRouterParams = createWrapperFunction(_getRouterParams)
333
- export const getRouterParam = createWrapperFunction(_getRouterParam)
334
- type WrappedGetValidatedRouterParams = <
335
- T,
336
- TEventInput = InferEventInput<'routerParams', H3Event, T>,
337
- >(
338
- ...args: Tail<
339
- Parameters<typeof _getValidatedRouterParams<T, H3Event, TEventInput>>
340
- >
341
- ) => ReturnType<typeof _getValidatedRouterParams<T, H3Event, TEventInput>>
342
- export const getValidatedRouterParams: PrependOverload<
343
- typeof _getValidatedRouterParams,
344
- WrappedGetValidatedRouterParams
345
- > = createWrapperFunction(_getValidatedRouterParams)
346
- export const assertMethod = createWrapperFunction(_assertMethod)
347
- export const getRequestHeaders = createWrapperFunction(_getRequestHeaders)
348
- export const getRequestHeader = createWrapperFunction(_getRequestHeader)
349
- export const getRequestURL = createWrapperFunction(_getRequestURL)
350
- export const getRequestHost = createWrapperFunction(_getRequestHost)
351
- export const getRequestProtocol = createWrapperFunction(_getRequestProtocol)
352
- export const getRequestIP = createWrapperFunction(_getRequestIP)
353
- export const send = createWrapperFunction(_send)
354
- export const sendNoContent = createWrapperFunction(_sendNoContent)
355
- export const setResponseStatus = createWrapperFunction(_setResponseStatus)
356
- export const getResponseStatus = createWrapperFunction(_getResponseStatus)
357
- export const getResponseStatusText = createWrapperFunction(
358
- _getResponseStatusText,
359
- )
360
- export const getResponseHeaders = createWrapperFunction(_getResponseHeaders)
361
- export const getResponseHeader = createWrapperFunction(_getResponseHeader)
362
- export const setResponseHeaders = createWrapperFunction(_setResponseHeaders)
363
- type WrappedSetResponseHeader = <T extends HTTPHeaderName>(
364
- ...args: Tail<Parameters<typeof _setResponseHeader<T>>>
365
- ) => ReturnType<typeof _setResponseHeader<T>>
366
- export const setResponseHeader: PrependOverload<
367
- typeof _setResponseHeader,
368
- WrappedSetResponseHeader
369
- > = createWrapperFunction(_setResponseHeader)
370
- export const appendResponseHeaders = createWrapperFunction(
371
- _appendResponseHeaders,
372
- )
373
- type WrappedAppendResponseHeader = <T extends HTTPHeaderName>(
374
- ...args: Tail<Parameters<typeof _appendResponseHeader<T>>>
375
- ) => ReturnType<typeof _appendResponseHeader<T>>
376
- export const appendResponseHeader: PrependOverload<
377
- typeof _appendResponseHeader,
378
- WrappedAppendResponseHeader
379
- > = createWrapperFunction(_appendResponseHeader)
380
- export const defaultContentType = createWrapperFunction(_defaultContentType)
381
- export const sendRedirect = createWrapperFunction(_sendRedirect)
382
- export const sendStream = createWrapperFunction(_sendStream)
383
- export const writeEarlyHints = createWrapperFunction(_writeEarlyHints)
384
- export const sendError = createWrapperFunction(_sendError)
385
- export const sendProxy = createWrapperFunction(_sendProxy)
386
- export const proxyRequest = createWrapperFunction(_proxyRequest)
387
- type WrappedFetchWithEvent = <
388
- T = unknown,
389
- TResponse = any,
390
- TFetch extends (req: RequestInfo | URL, opts?: any) => any = typeof fetch,
391
- >(
392
- ...args: Tail<Parameters<typeof _fetchWithEvent<T, TResponse, TFetch>>>
393
- ) => ReturnType<typeof _fetchWithEvent<T, TResponse, TFetch>>
394
- export const fetchWithEvent: PrependOverload<
395
- typeof _fetchWithEvent,
396
- WrappedFetchWithEvent
397
- > = createWrapperFunction(_fetchWithEvent)
398
- export const getProxyRequestHeaders = createWrapperFunction(
399
- _getProxyRequestHeaders,
400
- )
401
-
402
- export const parseCookies = createWrapperFunction(_parseCookies)
403
- export const getCookie = createWrapperFunction(_getCookie)
404
- export const setCookie = createWrapperFunction(_setCookie)
405
- export const deleteCookie = createWrapperFunction(_deleteCookie)
406
- // not exported :(
407
- type SessionDataT = Record<string, any>
408
- type WrappedUseSession = <T extends SessionDataT>(
409
- ...args: Tail<Parameters<typeof _useSession<T>>>
410
- ) => ReturnType<typeof _useSession<T>>
411
- // we need to `as` these because the WrapFunction doesn't work for them
412
- // because they also accept CompatEvent instead of H3Event
413
- export const useSession = createWrapperFunction(_useSession) as PrependOverload<
414
- typeof _useSession,
415
- WrappedUseSession
416
- >
417
- type WrappedGetSession = <T extends SessionDataT>(
418
- ...args: Tail<Parameters<typeof _getSession<T>>>
419
- ) => ReturnType<typeof _getSession<T>>
420
- export const getSession = createWrapperFunction(_getSession) as PrependOverload<
421
- typeof _getSession,
422
- WrappedGetSession
423
- >
424
- type WrappedUpdateSession = <T extends SessionDataT>(
425
- ...args: Tail<Parameters<typeof _updateSession<T>>>
426
- ) => ReturnType<typeof _updateSession<T>>
427
- export const updateSession: PrependOverload<
428
- typeof _updateSession,
429
- WrappedUpdateSession
430
- > = createWrapperFunction(_updateSession)
431
- type WrappedSealSession = <T extends SessionDataT>(
432
- ...args: Tail<Parameters<typeof _sealSession<T>>>
433
- ) => ReturnType<typeof _sealSession<T>>
434
- export const sealSession = createWrapperFunction(
435
- _sealSession,
436
- ) as PrependOverload<typeof _sealSession, WrappedSealSession>
437
- export const unsealSession = createWrapperFunction(_unsealSession)
438
- export const clearSession = createWrapperFunction(_clearSession)
439
- export const handleCacheHeaders = createWrapperFunction(_handleCacheHeaders)
440
- export const handleCors = createWrapperFunction(_handleCors)
441
- export const appendCorsHeaders = createWrapperFunction(_appendCorsHeaders)
442
- export const appendCorsPreflightHeaders = createWrapperFunction(
443
- _appendCorsPreflightHeaders,
444
- )
445
- export const sendWebResponse = createWrapperFunction(_sendWebResponse)
446
- type WrappedAppendHeader = <T extends HTTPHeaderName>(
447
- ...args: Tail<Parameters<typeof _appendHeader<T>>>
448
- ) => ReturnType<typeof _appendHeader<T>>
449
- export const appendHeader: PrependOverload<
450
- typeof _appendHeader,
451
- WrappedAppendHeader
452
- > = createWrapperFunction(_appendHeader)
453
- export const appendHeaders = createWrapperFunction(_appendHeaders)
454
- type WrappedSetHeader = <T extends HTTPHeaderName>(
455
- ...args: Tail<Parameters<typeof _setHeader<T>>>
456
- ) => ReturnType<typeof _setHeader<T>>
457
- export const setHeader: PrependOverload<typeof _setHeader, WrappedSetHeader> =
458
- createWrapperFunction(_setHeader)
459
- export const setHeaders = createWrapperFunction(_setHeaders)
460
- export const getHeader = createWrapperFunction(_getHeader)
461
- export const getHeaders = createWrapperFunction(_getHeaders)
462
- export const getRequestFingerprint = createWrapperFunction(
463
- _getRequestFingerprint,
464
- )
465
- export const getRequestWebStream = createWrapperFunction(_getRequestWebStream)
466
- export const readFormData = createWrapperFunction(_readFormData)
467
- export const readMultipartFormData = createWrapperFunction(
468
- _readMultipartFormData,
469
- )
470
- type WrappedReadValidatedBody = <
471
- T,
472
- TEventInput = InferEventInput<'body', H3Event, T>,
473
- >(
474
- ...args: Tail<Parameters<typeof _readValidatedBody<T, H3Event, TEventInput>>>
475
- ) => ReturnType<typeof _readValidatedBody<T, H3Event, TEventInput>>
476
- export const readValidatedBody: PrependOverload<
477
- typeof _readValidatedBody,
478
- WrappedReadValidatedBody
479
- > = createWrapperFunction(_readValidatedBody)
480
- export const removeResponseHeader = createWrapperFunction(_removeResponseHeader)
481
- export const getContext = createWrapperFunction(_getContext)
482
- export const setContext = createWrapperFunction(_setContext)
483
- export const clearResponseHeaders = createWrapperFunction(_clearResponseHeaders)
484
- export const getWebRequest = createWrapperFunction(_toWebRequest)
485
-
486
- export type RequestHandler = (ctx: {
487
- request: Request
488
- }) => Promise<Response> | Response
489
-
490
- export function requestHandler(handler: RequestHandler) {
491
- return handler
492
- }