11import { consola } from 'consola'
22import { createError , defineEventHandler , getRouterParam , readBody , send , setResponseHeader , setResponseStatus , splitCookiesString } from 'h3'
33import { base64ToUint8Array , uint8ArrayToBase64 , uint8ArrayToString } from 'uint8array-extras'
4+ import type { H3Event } from 'h3'
45import type { ModuleOptions } from '../../module'
56import { createAuthHeader } from '../utils'
67import type { ServerFetchOptions } from '../types'
@@ -19,7 +20,9 @@ const ignoredResponseHeaders = new Set([
1920 'x-powered-by' ,
2021] )
2122
22- async function fetcher ( {
23+ // Always give `event` as first argument to make sure cached functions
24+ // are working as expected in edge workers
25+ async function fetcher ( event : H3Event , {
2326 key,
2427 query,
2528 path,
@@ -66,7 +69,7 @@ const cachedFetcher = defineCachedFunction(fetcher, {
6669 base : kql . server . storage ,
6770 swr : kql . server . swr ,
6871 maxAge : kql . server . maxAge ,
69- getKey : ( { key } : { key : string } & ServerFetchOptions ) => key ,
72+ getKey : ( event : H3Event , { key } : { key : string } & ServerFetchOptions ) => key ,
7073} )
7174
7275export default defineEventHandler ( async ( event ) => {
@@ -94,8 +97,8 @@ export default defineEventHandler(async (event) => {
9497
9598 try {
9699 const response = kql . server . cache && body . cache
97- ? await cachedFetcher ( { key, ...body } )
98- : await fetcher ( { key, ...body } )
100+ ? await cachedFetcher ( event , { key, ...body } )
101+ : await fetcher ( event , { key, ...body } )
99102
100103 const buffer = base64ToUint8Array ( response . data )
101104
0 commit comments