summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorKit Langton <[email protected]>2026-04-16 19:50:32 -0400
committerGitHub <[email protected]>2026-04-16 23:50:32 +0000
commit1089fa041561d76a58d72e464d95219af682eb8c (patch)
treedff64e7f2b299bb730e19eecd9095a9d61af88b9
parent715786bbf96304f617c5f2a48ed49fe6101c90ef (diff)
downloadopencode-1089fa041561d76a58d72e464d95219af682eb8c.tar.gz
opencode-1089fa041561d76a58d72e464d95219af682eb8c.zip
refactor: unwrap ServerProxy namespace + self-reexport (#22969)
-rw-r--r--packages/opencode/src/server/proxy.ts142
1 files changed, 71 insertions, 71 deletions
diff --git a/packages/opencode/src/server/proxy.ts b/packages/opencode/src/server/proxy.ts
index 07703fdc8..22bc89baf 100644
--- a/packages/opencode/src/server/proxy.ts
+++ b/packages/opencode/src/server/proxy.ts
@@ -101,83 +101,83 @@ const app = (upgrade: UpgradeWebSocket) =>
}),
)
-export namespace ServerProxy {
- const log = Log.Default.clone().tag("service", "server-proxy")
+const log = Log.Default.clone().tag("service", "server-proxy")
- export async function http(
- url: string | URL,
- extra: HeadersInit | undefined,
- req: Request,
- workspaceID: WorkspaceID,
- ) {
- if (!Workspace.isSyncing(workspaceID)) {
- return new Response(`broken sync connection for workspace: ${workspaceID}`, {
- status: 503,
- headers: {
- "content-type": "text/plain; charset=utf-8",
- },
- })
- }
+export async function http(
+ url: string | URL,
+ extra: HeadersInit | undefined,
+ req: Request,
+ workspaceID: WorkspaceID,
+) {
+ if (!Workspace.isSyncing(workspaceID)) {
+ return new Response(`broken sync connection for workspace: ${workspaceID}`, {
+ status: 503,
+ headers: {
+ "content-type": "text/plain; charset=utf-8",
+ },
+ })
+ }
- return fetch(
- new Request(url, {
- method: req.method,
- headers: headers(req, extra),
- body: req.method === "GET" || req.method === "HEAD" ? undefined : req.body,
- redirect: "manual",
- signal: req.signal,
- }),
- ).then((res) => {
- const sync = Fence.parse(res.headers)
- const next = new Headers(res.headers)
- next.delete("content-encoding")
- next.delete("content-length")
+ return fetch(
+ new Request(url, {
+ method: req.method,
+ headers: headers(req, extra),
+ body: req.method === "GET" || req.method === "HEAD" ? undefined : req.body,
+ redirect: "manual",
+ signal: req.signal,
+ }),
+ ).then((res) => {
+ const sync = Fence.parse(res.headers)
+ const next = new Headers(res.headers)
+ next.delete("content-encoding")
+ next.delete("content-length")
- const done = sync ? Fence.wait(workspaceID, sync, req.signal) : Promise.resolve()
+ const done = sync ? Fence.wait(workspaceID, sync, req.signal) : Promise.resolve()
- return done.then(async () => {
- console.log("proxy http response", {
- method: req.method,
- request: req.url,
- url: String(url),
- status: res.status,
- statusText: res.statusText,
- })
- return new Response(res.body, {
- status: res.status,
- statusText: res.statusText,
- headers: next,
- })
+ return done.then(async () => {
+ console.log("proxy http response", {
+ method: req.method,
+ request: req.url,
+ url: String(url),
+ status: res.status,
+ statusText: res.statusText,
+ })
+ return new Response(res.body, {
+ status: res.status,
+ statusText: res.statusText,
+ headers: next,
})
})
- }
+ })
+}
- export function websocket(
- upgrade: UpgradeWebSocket,
- target: string | URL,
- extra: HeadersInit | undefined,
- req: Request,
- env: unknown,
- ) {
- const proxy = new URL(req.url)
- proxy.pathname = "/__workspace_ws"
- proxy.search = ""
- const next = new Headers(req.headers)
- next.set("x-opencode-proxy-url", socket(target))
- for (const [key, value] of new Headers(extra).entries()) {
- next.set(key, value)
- }
- log.info("proxy websocket", {
- request: req.url,
- target: String(target),
- })
- return app(upgrade).fetch(
- new Request(proxy, {
- method: req.method,
- headers: next,
- signal: req.signal,
- }),
- env as never,
- )
+export function websocket(
+ upgrade: UpgradeWebSocket,
+ target: string | URL,
+ extra: HeadersInit | undefined,
+ req: Request,
+ env: unknown,
+) {
+ const proxy = new URL(req.url)
+ proxy.pathname = "/__workspace_ws"
+ proxy.search = ""
+ const next = new Headers(req.headers)
+ next.set("x-opencode-proxy-url", socket(target))
+ for (const [key, value] of new Headers(extra).entries()) {
+ next.set(key, value)
}
+ log.info("proxy websocket", {
+ request: req.url,
+ target: String(target),
+ })
+ return app(upgrade).fetch(
+ new Request(proxy, {
+ method: req.method,
+ headers: next,
+ signal: req.signal,
+ }),
+ env as never,
+ )
}
+
+export * as ServerProxy from "./proxy"