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参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
raw | string | null | 否 | 原始 machineId 或 label |
extra | unknown | 否 | 消息 extra_data |
clientMachineId | string | null | 否 | 待写入的 machineId |
返回值
| 函数 | 类型 | 说明 |
|---|---|---|
normalizeDesktopMachineId | string | null | 合法 id:^[a-zA-Z0-9_-]+$,最长 128 |
parseClientMachineIdFromExtra | string | null | 从 extra 解析并规范化 |
mergeClientMachineIdExtra | Record<string, unknown> | 写入 client_machine_id |
normalizeDesktopMachineLabel | string | null | 非空 label,最长 128 |
工作原理
- machineId 仅允许字母数字、
_、-,超长或非法返回null。 - merge 时无效 id 不写入字段。
- label 仅 trim 与截断,不做字符集限制。