mirror of
https://github.com/Nezumi-2711/Sink.git
synced 2026-09-22 20:00:55 +00:00
feat: init
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
import { z } from 'zod'
|
||||
|
||||
export default eventHandler(async (event) => {
|
||||
const { cloudflare } = event.context
|
||||
const { KV } = cloudflare.env
|
||||
const { limit, cursor } = await getValidatedQuery(event, z.object({
|
||||
limit: z.coerce.number().max(1024).default(20),
|
||||
cursor: z.string().trim().max(1024).optional(),
|
||||
}).parse)
|
||||
const list = await KV.list({
|
||||
prefix: `link:`,
|
||||
limit,
|
||||
cursor,
|
||||
})
|
||||
if (Array.isArray(list.keys)) {
|
||||
list.links = await Promise.all(list.keys.map(async (key: { name: string }) => {
|
||||
const { metadata, value: link } = await KV.getWithMetadata(key.name, { type: 'json' })
|
||||
if (link) {
|
||||
return {
|
||||
...metadata,
|
||||
...link,
|
||||
}
|
||||
}
|
||||
return link
|
||||
}))
|
||||
}
|
||||
delete list.keys
|
||||
return list
|
||||
})
|
||||
Reference in New Issue
Block a user