Skip to content

Commit e176771

Browse files
kitlangtonopencode
authored andcommitted
refactor: unwrap MDNS namespace + self-reexport (#22953)
1 parent 10658f8 commit e176771

1 file changed

Lines changed: 49 additions & 49 deletions

File tree

  • packages/opencode/src/server

packages/opencode/src/server/mdns.ts

Lines changed: 49 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -3,58 +3,58 @@ import { Bonjour } from "bonjour-service"
33

44
const log = Log.create({ service: "mdns" })
55

6-
export namespace MDNS {
7-
let bonjour: Bonjour | undefined
8-
let currentPort: number | undefined
9-
10-
export function publish(port: number, domain?: string) {
11-
if (currentPort === port) return
12-
if (bonjour) unpublish()
13-
14-
try {
15-
const host = domain ?? "opencode.local"
16-
const name = `opencode-${port}`
17-
bonjour = new Bonjour()
18-
const service = bonjour.publish({
19-
name,
20-
type: "http",
21-
host,
22-
port,
23-
txt: { path: "/" },
24-
})
25-
26-
service.on("up", () => {
27-
log.info("mDNS service published", { name, port })
28-
})
29-
30-
service.on("error", (err) => {
31-
log.error("mDNS service error", { error: err })
32-
})
33-
34-
currentPort = port
35-
} catch (err) {
36-
log.error("mDNS publish failed", { error: err })
37-
if (bonjour) {
38-
try {
39-
bonjour.destroy()
40-
} catch {}
41-
}
42-
bonjour = undefined
43-
currentPort = undefined
44-
}
45-
}
46-
47-
export function unpublish() {
6+
let bonjour: Bonjour | undefined
7+
let currentPort: number | undefined
8+
9+
export function publish(port: number, domain?: string) {
10+
if (currentPort === port) return
11+
if (bonjour) unpublish()
12+
13+
try {
14+
const host = domain ?? "opencode.local"
15+
const name = `opencode-${port}`
16+
bonjour = new Bonjour()
17+
const service = bonjour.publish({
18+
name,
19+
type: "http",
20+
host,
21+
port,
22+
txt: { path: "/" },
23+
})
24+
25+
service.on("up", () => {
26+
log.info("mDNS service published", { name, port })
27+
})
28+
29+
service.on("error", (err) => {
30+
log.error("mDNS service error", { error: err })
31+
})
32+
33+
currentPort = port
34+
} catch (err) {
35+
log.error("mDNS publish failed", { error: err })
4836
if (bonjour) {
4937
try {
50-
bonjour.unpublishAll()
5138
bonjour.destroy()
52-
} catch (err) {
53-
log.error("mDNS unpublish failed", { error: err })
54-
}
55-
bonjour = undefined
56-
currentPort = undefined
57-
log.info("mDNS service unpublished")
39+
} catch {}
5840
}
41+
bonjour = undefined
42+
currentPort = undefined
5943
}
6044
}
45+
46+
export function unpublish() {
47+
if (bonjour) {
48+
try {
49+
bonjour.unpublishAll()
50+
bonjour.destroy()
51+
} catch (err) {
52+
log.error("mDNS unpublish failed", { error: err })
53+
}
54+
bonjour = undefined
55+
currentPort = undefined
56+
log.info("mDNS service unpublished")
57+
}
58+
}
59+
60+
export * as MDNS from "./mdns"

0 commit comments

Comments
 (0)