diff --git a/src/runtime/cache/server/api/_hub/cache/[...key].get.ts b/src/runtime/cache/server/api/_hub/cache/[...key].get.ts index 51f6c096..f2e7dd9c 100644 --- a/src/runtime/cache/server/api/_hub/cache/[...key].get.ts +++ b/src/runtime/cache/server/api/_hub/cache/[...key].get.ts @@ -11,8 +11,12 @@ export default eventHandler(async (event) => { const key = getRouterParam(event, 'key') || '' // If ends with an extension - if (/\.[a-z0-9]+$/i.test(key)) { - return await useStorage('cache:nitro').getItem(key) + if (/\.[a-z0-9]{2,5}$/i.test(key)) { + const item = await useStorage('cache:nitro').getItem(key) + if (item) { + return item + } + // Ignore if item is not found, treat the key as a prefix and look for children } const storage = useStorage(`cache:nitro:${key}`) const keys = await storage.getKeys() diff --git a/src/runtime/cache/server/api/_hub/cache/batch-delete.post.ts b/src/runtime/cache/server/api/_hub/cache/batch-delete.post.ts index 4ac17a10..8eca594e 100644 --- a/src/runtime/cache/server/api/_hub/cache/batch-delete.post.ts +++ b/src/runtime/cache/server/api/_hub/cache/batch-delete.post.ts @@ -17,7 +17,7 @@ export default eventHandler(async (event) => { // delete with batch of 25 keys do { const keysToDelete = keys.splice(0, 25) - await Promise.all(keysToDelete.map(storage.removeItem)) + await Promise.all(keysToDelete.map(key => storage.removeItem(key))) } while (keys.length) return sendNoContent(event)