OverviewFilesCommitsIssuesDocsReleasesPeers

keet-deobfuscated / @holepunchto / hyperdiscovery / build.js

63 lines · javascript ref:
const e = require("path"),
  r = require("hyperschema"),
  i = require("hyperdb/builder"),
  n = e.join(__dirname, "./spec/hyperschema"),
  s = e.join(__dirname, "./spec/hyperdb"),
  a = r.from(n, { versioned: !1 }),
  m = a.namespace("hyperdiscovery")
;(m.register({
  name: "manifest",
  fields: [
    { name: "version", type: "uint", required: !0 },
    { name: "seed", type: "fixed32", required: !0 },
  ],
}),
  m.register({
    name: "swarm",
    fields: [
      { name: "publicKey", type: "fixed32", required: !0 },
      { name: "bumped", type: "uint" },
      { name: "updated", type: "uint" },
      { name: "signature", type: "fixed64" },
    ],
  }),
  m.register({ name: "announce", fields: [{ name: "bump", type: "uint" }] }),
  m.register({
    name: "announce-to-swarm",
    fields: [
      { name: "publicKey", type: "fixed32", required: !0 },
      { name: "announce", type: "@hyperdiscovery/announce", required: !0 },
      { name: "signature", type: "fixed64", required: !0 },
    ],
  }),
  m.register({
    name: "subscribe-to-swarm",
    fields: [
      { name: "publicKey", type: "fixed32", required: !0 },
      { name: "since", type: "uint", required: !0 },
    ],
  }),
  m.register({
    name: "unsubscribe-to-swarm",
    fields: [{ name: "publicKey", type: "fixed32", required: !0 }],
  }),
  m.register({
    name: "bump-from-swarm",
    fields: [
      { name: "publicKey", type: "fixed32", required: !0 },
      { name: "bumped", type: "uint", required: !0 },
    ],
  }),
  r.toDisk(a))
const t = i.from(n, s),
  d = t.namespace("hyperdiscovery")
;(d.collections.register({ name: "manifest", schema: "@hyperdiscovery/manifest", key: [] }),
  d.collections.register({ name: "swarms", schema: "@hyperdiscovery/swarm", key: ["publicKey"] }),
  d.indexes.register({
    name: "swarms-by-updated",
    collection: "@hyperdiscovery/swarms",
    key: ["updated"],
    unique: !0,
  }),
  i.toDisk(t))