()
| 34 | `${backend.uuid}|${getSingboxUrlFromBackend(backend)}|${getSingboxSecret(backend)}` |
| 35 | |
| 36 | export const getSingboxClient = (): SingboxClient | null => { |
| 37 | const backend = activeBackend.value |
| 38 | const baseUrl = backend ? getSingboxUrlFromBackend(backend) : '' |
| 39 | if (!backend || !baseUrl) { |
| 40 | current = null |
| 41 | return null |
| 42 | } |
| 43 | const key = backendKey(backend) |
| 44 | if (current?.key === key) return current.client |
| 45 | current = { key, client: new SingboxClient(baseUrl, getSingboxSecret(backend)) } |
| 46 | return current.client |
| 47 | } |
| 48 | |
| 49 | // Probe the sing-box channel for the Setup connectivity test. |
| 50 | export const probeSingboxChannel = async (backend: Backend, timeout = 10000): Promise<boolean> => { |
no test coverage detected