Skip to content

imMessageNormalize

IM 消息/会话行归一化、时间排序与 sender_seq 补全。

函数签名

typescript
function normalizeOptionalIso8601(input?: string): string | undefined

function parseImMessageTimeFieldToMs(raw: unknown): number

function shouldPreferClientSentAtForImMessageSort(m: ImMessage): boolean

function coerceImMessageTimeMsOutboundAware(m: ImMessage): number

function coerceMessageTimeMsForSort(m: ImMessage): number

function compareMessageIdAsc(a: string | number, b: string | number): number

function sortMessagesChronologicalAsc(messages: ImMessage[]): void

function coerceMessageCreatedAtMsForSort(m: ImMessage): number

function sortMessagesChronologicalByCreatedAtAsc(messages: ImMessage[]): void

function ensureSenderSeqChronological(messages: ImMessage[]): void

function normalizeMessageId(raw: unknown): string | number | null

function normalizeDatabaseMessageToIm(item: ImDbMessageRow): ImMessage

function normalizeDatabaseConversationToIm(
  item: ImDbConversationRow,
): Conversation

使用场景

  • 仓储行 → ImMessage / Conversation 领域对象
  • 消息列表按时间正序排列(与 DB created_atserver_sent_at 策略对齐)