summaryrefslogtreecommitdiffhomepage
path: root/packages/opencode/src/server/adapter.ts
blob: 7f4edd2c17a17bcfb71f38f9ab77de650df13769 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import type { Hono } from "hono"
import type { UpgradeWebSocket } from "hono/ws"

export type FetchApp = {
  fetch(request: Request): Response | Promise<Response>
}

export type Opts = {
  port: number
  hostname: string
}

export type Listener = {
  port: number
  stop: (close?: boolean) => Promise<void>
}

export interface Runtime {
  upgradeWebSocket: UpgradeWebSocket
  listen(opts: Opts): Promise<Listener>
}

export interface Adapter {
  create(app: Hono): Runtime
  createFetch(app: FetchApp): Omit<Runtime, "upgradeWebSocket">
}