feat: add get token list

This commit is contained in:
keyp-dev
2024-11-08 16:53:56 +08:00
parent 67845c1f7c
commit 9fc765dec8
3 changed files with 23 additions and 2 deletions

3
cloudflare.d.ts vendored
View File

@@ -8,5 +8,8 @@ declare module 'vite-plugin-cloudflare-functions/client' {
GET: CloudflareResponseBody<typeof import('functions/api/tokens/[tokenId]')['onRequestGet']>;
POST: CloudflareResponseBody<typeof import('functions/api/tokens/[tokenId]')['onRequestPost']>;
};
'/api/tokens/list': {
GET: CloudflareResponseBody<typeof import('functions/api/tokens/list')['onRequestGet']>;
};
}
}

View File

@@ -0,0 +1,20 @@
import {
makePagesFunction,
makeResponse,
} from "vite-plugin-cloudflare-functions/worker"
import { PagesFunctionEnv } from "../../types"
export const onRequestGet = makePagesFunction<unknown, PagesFunctionEnv>(
async ({ params, env }) => {
const keys = (await env.satlayer_hackathon_tokens.list()).keys.map(key => key.name);
const tokens = await Promise.all(keys.map(key => env.satlayer_hackathon_tokens.get(key)));
return makeResponse(tokens, {
headers: {
"Access-Control-Allow-Origin": "*",
"Access-Control-Max-Age": "86400",
},
})
},
)

View File

@@ -1,5 +1,3 @@
import { KVNamespace } from '@cloudflare/workers-types'
export interface PagesFunctionEnv {
satlayer_hackathon_tokens: KVNamespace
}