(raw)
| 23 | let hubConnectingServerId = null; |
| 24 | |
| 25 | function normalizeServerEntry(raw) { |
| 26 | const base = (raw && typeof raw === 'object') ? raw : { addr: raw }; |
| 27 | const parsed = parseServerAddress(String(base.addr || '')); |
| 28 | return { |
| 29 | id: typeof base.id === 'string' && base.id ? base.id : generateServerId(), |
| 30 | addr: parsed.ok ? parsed.displayAddr : String(base.addr || '').trim(), |
| 31 | wsUrl: parsed.ok ? parsed.wsUrl : String(base.wsUrl || ''), |
| 32 | cacheAddr: parsed.ok ? parsed.cacheAddr : String(base.cacheAddr || ''), |
| 33 | alias: typeof base.alias === 'string' ? base.alias.trim() : '', |
| 34 | token: typeof base.token === 'string' ? base.token : '', |
| 35 | addedAt: Number.isFinite(base.addedAt) ? base.addedAt : Date.now(), |
| 36 | lastConnectedAt: Number.isFinite(base.lastConnectedAt) ? base.lastConnectedAt : 0, |
| 37 | }; |
| 38 | } |
| 39 | |
| 40 | function getServerDedupKey(server) { |
| 41 | if (server.wsUrl) return `ws:${server.wsUrl}`; |
no test coverage detected