OverviewFilesCommitsIssuesDocsReleasesPeers

keet-deobfuscated / @holepunchto / keet-call / lib / messages.js

44 lines · javascript ref:
const e = require("compact-encoding"),
  d = {
    preencode(d, o) {
      ;(e.uint.preencode(d, 0), e.string.preencode(d, o.id), e.string.preencode(d, o.name))
    },
    encode(d, o) {
      const n = d.start++
      ;(e.string.encode(d, o.id), e.string.encode(d, o.name))
      let s = 0
      ;(o.audioMuted && (s |= 1), o.videoMuted && (s |= 2), (d.buffer[n] = s))
    },
    decode(d) {
      const o = e.uint.decode(d)
      return {
        id: e.string.decode(d),
        name: e.string.decode(d),
        audioMuted: !!(1 & o),
        videoMuted: !!(2 & o),
      }
    },
  }
;((module.exports.StreamsMessage = e.array(d)),
  (module.exports.PeerPresenceMessage = {
    preencode(d, o) {
      ;(e.uint.preencode(d, 1), e.fixed32.preencode(d, o.key))
    },
    encode(d, o) {
      ;(e.uint.encode(d, o.present ? 1 : 0), e.fixed32.encode(d, o.key))
    },
    decode: (d) => ({ present: !!e.uint.decode(d), key: e.fixed32.decode(d) }),
  }),
  (module.exports.HandshakeMessage = {
    preencode(d, o) {
      e.uint.preencode(d, o.alias)
    },
    encode(d, o) {
      e.uint.encode(d, o.alias)
    },
    decode: (d) => ({ alias: e.uint.decode(d) }),
  }),
  (module.exports.TrackRequestMessage = e.buffer),
  (module.exports.TrackResponseMessage = e.buffer),
  (module.exports.SignalMessage = e.json))