Files
goodbuddy/src/main/agent/loopback-port.ts
T
lofyerandfactory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com> 6ef1795b81 feat: add persistent desktop assistant workspace
Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-07-31 22:33:03 +08:00

24 lines
659 B
TypeScript

import { createServer } from 'node:net'
export async function getAvailableLoopbackPort(): Promise<number> {
return new Promise<number>((resolvePort, reject) => {
const server = createServer()
server.unref()
server.once('error', reject)
server.listen(0, '127.0.0.1', () => {
const address = server.address()
const port =
address && typeof address === 'object' ? address.port : 0
server.close((error) => {
if (error) {
reject(error)
} else if (port > 0) {
resolvePort(port)
} else {
reject(new Error('无法分配本机端口'))
}
})
})
})
}