From 85cc8613dbbd42c8f91c99c1d043a8b7cefabd7e Mon Sep 17 00:00:00 2001 From: Mathias Wagner Date: Thu, 30 Nov 2023 11:38:32 +0100 Subject: [PATCH] Created the helpers.js util --- server/util/helpers.js | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 server/util/helpers.js diff --git a/server/util/helpers.js b/server/util/helpers.js new file mode 100644 index 00000000..c3360f23 --- /dev/null +++ b/server/util/helpers.js @@ -0,0 +1,34 @@ +module.exports.replaceVariables = (message, variables) => { + for (const variable in variables) + message = message.replace(`%${variable}%`, variables[variable]); + return message; +} + +module.exports.mapFixed = (entries, type) => ({ + min: Math.min(...entries.map((entry) => entry[type])), + max: Math.max(...entries.map((entry) => entry[type])), + avg: parseFloat((entries.reduce((a, b) => a + b[type], 0) / entries.length).toFixed(2)) +}); + +module.exports.mapRounded = (entries, type) => ({ + min: Math.min(...entries.map((entry) => entry[type])), + max: Math.max(...entries.map((entry) => entry[type])), + avg: Math.round(entries.reduce((a, b) => a + b[type], 0) / entries.length) +}); + +module.exports.calculateTestAverages = (tests) => { + let avgNumbers = {ping: 0, down: 0, up: 0, time: 0}; + + tests.forEach((current) => { + avgNumbers.ping += current.ping; + avgNumbers.down += current.download; + avgNumbers.up += current.upload; + avgNumbers.time += current.time; + }); + + Object.keys(avgNumbers).forEach((key) => { + avgNumbers[key] = avgNumbers[key] / tests.length; + }); + + return avgNumbers; +} \ No newline at end of file