forked from imbytecat/fullstack-starter
refactor(desktop): 用类型收窄替代 as AddressInfo 断言
This commit is contained in:
@@ -1,5 +1,4 @@
|
|||||||
import { spawn } from 'node:child_process'
|
import { spawn } from 'node:child_process'
|
||||||
import type { AddressInfo } from 'node:net'
|
|
||||||
import { createServer } from 'node:net'
|
import { createServer } from 'node:net'
|
||||||
import { join } from 'node:path'
|
import { join } from 'node:path'
|
||||||
import { app, BrowserWindow, shell } from 'electron'
|
import { app, BrowserWindow, shell } from 'electron'
|
||||||
@@ -13,8 +12,13 @@ const getAvailablePort = (): Promise<number> =>
|
|||||||
new Promise((resolve, reject) => {
|
new Promise((resolve, reject) => {
|
||||||
const server = createServer()
|
const server = createServer()
|
||||||
server.listen(0, () => {
|
server.listen(0, () => {
|
||||||
const { port } = server.address() as AddressInfo
|
const addr = server.address()
|
||||||
server.close(() => resolve(port))
|
if (!addr || typeof addr === 'string') {
|
||||||
|
server.close()
|
||||||
|
reject(new Error('Failed to resolve port'))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
server.close(() => resolve(addr.port))
|
||||||
})
|
})
|
||||||
server.on('error', reject)
|
server.on('error', reject)
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user