24 lines
625 B
TypeScript
24 lines
625 B
TypeScript
/** 与 Electron `remote:get-bind-payload` 输出一致,供扫码导入 */
|
|
export type BindPayload = {
|
|
v: 1
|
|
baseUrl: string
|
|
port: number
|
|
token?: string
|
|
}
|
|
|
|
export function parseBindPayload(raw: string): BindPayload | null {
|
|
try {
|
|
const j = JSON.parse(raw) as Record<string, unknown>
|
|
if (j.v !== 1) return null
|
|
if (typeof j.baseUrl !== 'string') return null
|
|
return {
|
|
v: 1,
|
|
baseUrl: String(j.baseUrl).replace(/\/$/, ''),
|
|
port: typeof j.port === 'number' ? j.port : Number(j.port) || 8001,
|
|
token: j.token == null ? '' : String(j.token),
|
|
}
|
|
} catch {
|
|
return null
|
|
}
|
|
}
|