useLatestMessageValue.ts 586 Bytes
import type { SubscriptionData } from '@/core/websocket/type/message'

export function useLatestMessageValue(message: SubscriptionData, attr: string) {
  const value = message[attr] || []
  const [lateset] = value || []
  const [ts, latestValue = null] = lateset || []
  return { ts, latestValue }
}

export function useLatestMultipleMessageValue(message: SubscriptionData, attr: string[], Fn: (attribute: string, value: any, timespan: number) => void) {
  attr.forEach((item) => {
    const [ts = null, latestValue = null] = message[item][0] || []
    Fn(item, ts, latestValue)
  })
}