Skip to content

imDesktopMachineExtra

IM 桌面端 extra_data.client_machine_id 与机器标签规范化。

函数签名

typescript
const IM_CLIENT_MACHINE_ID_EXTRA_KEY = 'client_machine_id'

function normalizeDesktopMachineId(
  raw: string | null | undefined,
): string | null

function parseClientMachineIdFromExtra(extra: unknown): string | null

function mergeClientMachineIdExtra(
  extra: Record<string, unknown> | undefined,
  clientMachineId: string | null | undefined,
): Record<string, unknown>

function normalizeDesktopMachineLabel(
  raw: string | null | undefined,
): string | null

参数

参数名类型必填说明
rawstring | null原始 machineId 或 label
extraunknown消息 extra_data
clientMachineIdstring | null待写入的 machineId

返回值

函数类型说明
normalizeDesktopMachineIdstring | null合法 id:^[a-zA-Z0-9_-]+$,最长 128
parseClientMachineIdFromExtrastring | null从 extra 解析并规范化
mergeClientMachineIdExtraRecord<string, unknown>写入 client_machine_id
normalizeDesktopMachineLabelstring | null非空 label,最长 128

工作原理

  1. machineId 仅允许字母数字、_-,超长或非法返回 null
  2. merge 时无效 id 不写入字段。
  3. label 仅 trim 与截断,不做字符集限制。