mirror of
https://github.com/aljazceru/opencode.git
synced 2025-12-21 17:54:23 +01:00
share
This commit is contained in:
45
js/src/share/share.ts
Normal file
45
js/src/share/share.ts
Normal file
@@ -0,0 +1,45 @@
|
||||
import { App } from "../app";
|
||||
import { Bus } from "../bus";
|
||||
import { Session } from "../session/session";
|
||||
import { Storage } from "../storage/storage";
|
||||
|
||||
export namespace Share {
|
||||
const state = App.state("share", async () => {
|
||||
Bus.subscribe(Storage.Event.Write, async (payload) => {
|
||||
const [root, ...splits] = payload.properties.key.split("/");
|
||||
if (root !== "session") return;
|
||||
const [type, sessionID] = splits;
|
||||
const session = await Session.get(sessionID);
|
||||
if (!session.shareID) return;
|
||||
console.log({
|
||||
sessionID: sessionID,
|
||||
shareID: session.shareID,
|
||||
key: payload.properties.key,
|
||||
content: payload.properties.content,
|
||||
});
|
||||
await fetch(`${URL}/share_sync`, {
|
||||
method: "POST",
|
||||
body: JSON.stringify({
|
||||
sessionID: sessionID,
|
||||
shareID: session.shareID,
|
||||
key: payload.properties.key,
|
||||
content: payload.properties.content,
|
||||
}),
|
||||
}).then(console.log);
|
||||
});
|
||||
});
|
||||
|
||||
export async function init() {
|
||||
await state();
|
||||
}
|
||||
|
||||
const URL = "https://api.dev.opencode.ai";
|
||||
export async function create(sessionID: string) {
|
||||
return fetch(`${URL}/share_create`, {
|
||||
method: "POST",
|
||||
body: JSON.stringify({ sessionID: sessionID }),
|
||||
})
|
||||
.then((x) => x.json())
|
||||
.then((x) => x.shareID);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user