OverviewFilesCommitsIssuesDocsReleasesPeers

keet-deobfuscated / @holepunchto / keet-store / store / lib / frequency-calculator.js

16 lines · javascript ref:
export const frequencyCalculator = (e) => {
  let t = { ticks: 0, refferenceTime: Date.now() - 5e3, lastReceivedTime: Date.now() }
  return {
    updateFrequency: () => {
      const c = Date.now(),
        i = c - t.lastReceivedTime < e
      return (
        (t = i
          ? { ...t, ticks: t.ticks + 1, lastReceivedTime: c }
          : { ticks: 1, refferenceTime: c - 5e3, lastReceivedTime: c }),
        (1e3 * t.ticks) / (c - t.refferenceTime)
      )
    },
  }
}