Files
PC-mj/.output/server/node_modules/axios/lib/helpers/speedometer.js
DESKTOP-RQ919RC\Pc 56174d3bca build: 添加构建输出文件及依赖项
包含构建生成的静态资源文件、JavaScript模块及服务器端依赖项。新增了favicon.ico、多张PNG图标图片、Vue相关模块文件、axios库文件、错误处理中间件及样式文件等。这些文件是项目构建后的输出结果,用于生产环境部署。同时更新了构建配置和版本信息。
2025-11-19 14:25:58 +08:00

56 lines
1.1 KiB
JavaScript

'use strict';
/**
* Calculate data maxRate
* @param {Number} [samplesCount= 10]
* @param {Number} [min= 1000]
* @returns {Function}
*/
function speedometer(samplesCount, min) {
samplesCount = samplesCount || 10;
const bytes = new Array(samplesCount);
const timestamps = new Array(samplesCount);
let head = 0;
let tail = 0;
let firstSampleTS;
min = min !== undefined ? min : 1000;
return function push(chunkLength) {
const now = Date.now();
const startedAt = timestamps[tail];
if (!firstSampleTS) {
firstSampleTS = now;
}
bytes[head] = chunkLength;
timestamps[head] = now;
let i = tail;
let bytesCount = 0;
while (i !== head) {
bytesCount += bytes[i++];
i = i % samplesCount;
}
head = (head + 1) % samplesCount;
if (head === tail) {
tail = (tail + 1) % samplesCount;
}
if (now - firstSampleTS < min) {
return;
}
const passed = startedAt && now - startedAt;
return passed ? Math.round(bytesCount * 1000 / passed) : undefined;
};
}
export default speedometer;