summaryrefslogtreecommitdiffhomepage
path: root/js/src/share
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/share')
-rw-r--r--js/src/share/share.ts67
1 files changed, 0 insertions, 67 deletions
diff --git a/js/src/share/share.ts b/js/src/share/share.ts
deleted file mode 100644
index 8d4af8795..000000000
--- a/js/src/share/share.ts
+++ /dev/null
@@ -1,67 +0,0 @@
-import { App } from "../app/app";
-import { Bus } from "../bus";
-import { Session } from "../session/session";
-import { Storage } from "../storage/storage";
-import { Log } from "../util/log";
-
-export namespace Share {
- const log = Log.create({ service: "share" });
-
- let queue: Promise<void> = Promise.resolve();
- const pending = new Map<string, any>();
-
- 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 [, sessionID] = splits;
- const session = await Session.get(sessionID);
- if (!session.share) return;
- const { secret } = session.share;
-
- const key = payload.properties.key;
- pending.set(key, payload.properties.content);
-
- queue = queue
- .then(async () => {
- const content = pending.get(key);
- if (content === undefined) return;
- pending.delete(key);
-
- return fetch(`${URL}/share_sync`, {
- method: "POST",
- body: JSON.stringify({
- sessionID: sessionID,
- secret,
- key: key,
- content,
- }),
- });
- })
- .then((x) => {
- if (x) {
- log.info("synced", {
- key: key,
- status: x.status,
- });
- }
- });
- });
- });
-
- export async function init() {
- await state();
- }
-
- export const URL =
- process.env["OPENCODE_API"] ?? "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 as { url: string; secret: string });
- }
-}