Skip to content

Commit c11ca5f

Browse files
fix: pass event for caching in edge workers
1 parent dec7fec commit c11ca5f

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

src/runtime/server/handler.ts

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { consola } from 'consola'
22
import { createError, defineEventHandler, getRouterParam, readBody, send, setResponseHeader, setResponseStatus, splitCookiesString } from 'h3'
33
import { base64ToUint8Array, uint8ArrayToBase64, uint8ArrayToString } from 'uint8array-extras'
4+
import type { H3Event } from 'h3'
45
import type { ModuleOptions } from '../../module'
56
import { createAuthHeader } from '../utils'
67
import 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

7275
export 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

Comments
 (0)