OverviewFilesCommitsIssuesDocsReleasesPeers

keet-deobfuscated / @holepunchto / keet-store / store / room / joint / room-joint.model.js

33 lines · javascript ref:
export const PAIRING_STATUS = {
  ASKED: "asked",
  NEW: "new",
  COMPLETED: "completed",
  CANCELLED: "cancelled",
}
export const createAskedPairing = ({ seedId: e, messageId: s }) => ({
  seedId: e,
  roomId: "",
  messageId: s,
  expires: 0,
  status: PAIRING_STATUS.ASKED,
})
export const parsePendingRoomResponse = (e) => ({
  deviceId: e?.deviceId ?? "",
  discoveryId: e?.discoveryId ?? "",
  seedId: e?.seedId ?? "",
  roomId: e?.roomId ?? "",
  expires: e?.expires || 0,
  status: e?.status ?? "",
})
export const getRoomPairingItems = (e, s, d) => {
  const t = new Set(s.map((e) => e.seedId)),
    o = new Set(d),
    I = { pairing: [], completed: [], cancelled: [] }
  for (const e of s) o.has(e.discoveryId) || I.pairing.push({ ...e, status: PAIRING_STATUS.NEW })
  for (const s of e.filter((e) => !t.has(e.seedId)))
    s.status === PAIRING_STATUS.CANCELLED
      ? I.cancelled.push({ ...s, status: PAIRING_STATUS.CANCELLED })
      : I.completed.push({ ...s, status: PAIRING_STATUS.COMPLETED })
  return I
}