OverviewFilesCommitsIssuesDocsReleasesPeers

keet-deobfuscated / @holepunchto / keet-core-schemas / lib / config / index.js

45 lines · javascript ref:
const e = require("compact-encoding"),
  { CONFIG: a } = require("@holepunchto/keet-core-api"),
  r = require("../internal"),
  { UpdateConfigOperationV1: t, UpdateConfigOperationV2: s } = require("./ops"),
  { MirrorRecord: n } = require("./messages.js"),
  { MessageId: c } = require("../chat/messages.js")
module.exports = class i {
  static Encoding = r.ConfigEncoding
  static Operations = { UpdateConfigOperationV1: t, UpdateConfigOperationV2: s }
  static Collection = { keyEncoding: e.uint, valueEncoding: e.any }
  static PinnedMessages = e.array(c)
  static Mirrors = e.array(n)
  static getValue(e) {
    if (!e || !e.value) return null
    const { key: a, value: r } = e
    return i.decodeValue(a, r)
  }
  static decodeValue(e, a) {
    return i.encodeValue(e, a, !0)
  }
  static encodeValue(r, t, s = !1) {
    const n = s ? e.decode : e.encode
    switch (r) {
      case a.ID_PUBLIC_KEY:
      case a.ID_SHARED_INVITE_SEED:
      case a.ID_RECOVERY_PHRASE:
      case a.ROOM_TITLE:
      case a.ROOM_DESCRIPTION:
      case a.ROOM_AVATAR:
      case a.ROOM_TYPE:
      case a.ROOM_CAN_CALL:
        return n(e.string, t)
      case a.PINNED_MESSAGES:
        return n(i.PinnedMessages, t)
      case a.ROOM_MIRRORS:
        return n(i.Mirrors, t)
      case a.ROOM_LOCKED:
      case a.DISABLE_MEMBERSHIP_EVENTS:
        return n(e.uint, t)
      default:
        return n(e.string, t)
    }
  }
}