imReplyExtra
IM 消息 extra_data.reply_to 的解析与合并。
函数签名
typescript
const IM_REPLY_TO_EXTRA_KEY = 'reply_to'
function parseReplyToMessageId(
extraData?: Record<string, unknown> | null,
): string | null
function mergeValidatedReplyToExtra(
extraData: Record<string, unknown> | undefined,
replyToMessageId: string | null,
): Record<string, unknown>参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
extraData | Record<string, unknown> | null | 否 | 消息 extra_data |
replyToMessageId | string | null | 是 | 引用消息 id;null 时删除 reply_to |
返回值
| 函数 | 类型 | 说明 |
|---|---|---|
parseReplyToMessageId | string | null | extra_data.reply_to.message_id |
mergeValidatedReplyToExtra | Record<string, unknown> | 合并后的 extra(浅拷贝) |
工作原理
- 解析:
reply_to须为对象且message_id为非空字符串。 - 合并:有 id 时写入
{ message_id };无 id 时delete reply_to。
使用场景
- 发送消息前写入引用
- 读取消息展示引用条
同会话内消息存在性校验(
assertReplyToMessageInConversation)依赖数据库,留在 API 侧。