From 703e03aba33f234712206769f57717ba7d92d23d Mon Sep 17 00:00:00 2001 From: LinuxWizard42 Date: Wed, 12 Oct 2022 22:54:37 +0300 Subject: Added export_allowed file to make repository visible in cgit --- node_modules/speedometer/index.js | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 node_modules/speedometer/index.js (limited to 'node_modules/speedometer/index.js') diff --git a/node_modules/speedometer/index.js b/node_modules/speedometer/index.js new file mode 100644 index 0000000..5570fe0 --- /dev/null +++ b/node_modules/speedometer/index.js @@ -0,0 +1,35 @@ +var tick = 1 +var maxTick = 65535 +var resolution = 4 +var inc = function() { + tick = (tick + 1) & maxTick +} + +var timer = setInterval(inc, (1000 / resolution) | 0) +if (timer.unref) timer.unref() + +module.exports = function(seconds) { + var size = resolution * (seconds || 5) + var buffer = [0] + var pointer = 1 + var last = (tick-1) & maxTick + + return function(delta) { + var dist = (tick - last) & maxTick + if (dist > size) dist = size + last = tick + + while (dist--) { + if (pointer === size) pointer = 0 + buffer[pointer] = buffer[pointer === 0 ? size-1 : pointer-1] + pointer++ + } + + if (delta) buffer[pointer-1] += delta + + var top = buffer[pointer-1] + var btm = buffer.length < size ? 0 : buffer[pointer === size ? 0 : pointer] + + return buffer.length < resolution ? top : (top - btm) * resolution / buffer.length + } +} \ No newline at end of file -- cgit v1.2.3-95-g76ab