|
@@ -53,6 +53,9 @@ globalThis.AI_SDK_LOG_WARNINGS = false
|
|
|
export namespace Server {
|
|
export namespace Server {
|
|
|
const log = Log.create({ service: "server" })
|
|
const log = Log.create({ service: "server" })
|
|
|
|
|
|
|
|
|
|
+ // Port that the server is running on, used to inject into frontend HTML
|
|
|
|
|
+ let serverPort: number = 4096
|
|
|
|
|
+
|
|
|
export const Event = {
|
|
export const Event = {
|
|
|
Connected: BusEvent.define("server.connected", z.object({})),
|
|
Connected: BusEvent.define("server.connected", z.object({})),
|
|
|
Disposed: BusEvent.define("global.disposed", z.object({})),
|
|
Disposed: BusEvent.define("global.disposed", z.object({})),
|
|
@@ -2613,24 +2616,15 @@ export namespace Server {
|
|
|
return result
|
|
return result
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- let serverPort: number = 4096
|
|
|
|
|
-
|
|
|
|
|
export function listen(opts: { port: number; hostname: string }) {
|
|
export function listen(opts: { port: number; hostname: string }) {
|
|
|
const args = {
|
|
const args = {
|
|
|
hostname: opts.hostname,
|
|
hostname: opts.hostname,
|
|
|
idleTimeout: 0,
|
|
idleTimeout: 0,
|
|
|
fetch: App().fetch,
|
|
fetch: App().fetch,
|
|
|
websocket: websocket,
|
|
websocket: websocket,
|
|
|
- } as const
|
|
|
|
|
- if (opts.port === 0) {
|
|
|
|
|
- try {
|
|
|
|
|
- serverPort = 4096
|
|
|
|
|
- return Bun.serve({ ...args, port: 4096 })
|
|
|
|
|
- } catch {
|
|
|
|
|
- // port 4096 not available, fall through to use port 0
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- serverPort = opts.port
|
|
|
|
|
- return Bun.serve({ ...args, port: opts.port })
|
|
|
|
|
|
|
+ })
|
|
|
|
|
+ // Store the actual port for injection into frontend HTML
|
|
|
|
|
+ serverPort = server.port ?? opts.port
|
|
|
|
|
+ return server
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|