Skip to content

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>

参数

参数名类型必填说明
extraDataRecord<string, unknown> | null消息 extra_data
replyToMessageIdstring | null引用消息 id;null 时删除 reply_to

返回值

函数类型说明
parseReplyToMessageIdstring | nullextra_data.reply_to.message_id
mergeValidatedReplyToExtraRecord<string, unknown>合并后的 extra(浅拷贝)

工作原理

  1. 解析reply_to 须为对象且 message_id 为非空字符串。
  2. 合并:有 id 时写入 { message_id };无 id 时 delete reply_to

使用场景

  • 发送消息前写入引用
  • 读取消息展示引用条

同会话内消息存在性校验(assertReplyToMessageInConversation)依赖数据库,留在 API 侧。