summaryrefslogtreecommitdiffhomepage
path: root/packages/function
diff options
context:
space:
mode:
authorFrank <[email protected]>2025-06-09 23:07:29 -0400
committerFrank <[email protected]>2025-06-09 23:07:29 -0400
commit177875f624cb66cde08cfaf9bcf959959abe90b7 (patch)
tree718b86669ea4a6ee0585ad83aff94ac18dbceadd /packages/function
parentfdaa7f287cb3cfa9b87784c69b4037549f20fe6f (diff)
downloadopencode-177875f624cb66cde08cfaf9bcf959959abe90b7.tar.gz
opencode-177875f624cb66cde08cfaf9bcf959959abe90b7.zip
ssr sync
Diffstat (limited to 'packages/function')
-rw-r--r--packages/function/src/api.ts25
1 files changed, 20 insertions, 5 deletions
diff --git a/packages/function/src/api.ts b/packages/function/src/api.ts
index b058321c0..ae390412c 100644
--- a/packages/function/src/api.ts
+++ b/packages/function/src/api.ts
@@ -69,7 +69,7 @@ export class SyncServer extends DurableObject<Env> {
return secret
}
- public async messages() {
+ public async getData() {
const data = await this.ctx.storage.list()
const messages = []
for (const [key, content] of data.entries()) {
@@ -173,14 +173,29 @@ export default {
return stub.fetch(request)
}
- if (request.method === "GET" && method === "share_messages") {
+ if (request.method === "GET" && method === "share_data") {
const id = url.searchParams.get("id")
- console.log("share_messages", id)
+ console.log("share_data", id)
if (!id)
return new Response("Error: Share ID is required", { status: 400 })
const stub = env.SYNC_SERVER.get(env.SYNC_SERVER.idFromName(id))
- const messages = await stub.messages()
- return new Response(JSON.stringify({ messages }), {
+ const data = await stub.getData()
+ let info
+ const messages = {}
+ data.forEach((d) => {
+ const [root, type, ...splits] = d.key.split("/")
+ if (root !== "session") return
+ if (type === "info") {
+ info = d.content
+ return
+ }
+ if (type === "message") {
+ const [, messageID] = splits
+ messages[messageID] = d.content
+ }
+ })
+
+ return new Response(JSON.stringify({ info, messages }), {
headers: { "Content-Type": "application/json" },
})
}