diff --git a/src/networkStats.ts b/src/networkStats.ts index 38b4f6114..33df4d5d7 100644 --- a/src/networkStats.ts +++ b/src/networkStats.ts @@ -1,3 +1,5 @@ +import { getAverage } from "./utils"; + const IMAGE_URL = `${process.env.REACT_APP_SOCKET_SERVER_URL}/test256.png`; const IMAGE_SIZE_BITS = 141978 * 8; const AVERAGE_MAX = 4; @@ -11,10 +13,6 @@ const pushSpeed = (speed: number): void => { } }; -const getAverageSpeed = (): number => { - return speedHistory.reduce((a, b) => a + b) / speedHistory.length; -}; - const getSpeedBits = ( imageSize: number, startTime: number, @@ -35,7 +33,7 @@ const processImage = (): Promise => { endTime = new Date().getTime(); const speed = getSpeedBits(IMAGE_SIZE_BITS, startTime, endTime); pushSpeed(speed); - resolve(getAverageSpeed()); + resolve(getAverage(speedHistory)); }; image.onerror = () => { diff --git a/src/utils.ts b/src/utils.ts index 09f634e62..8ef16499e 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -386,6 +386,11 @@ export const formatTime = (mseconds: number): string => { ? `${mseconds} ms` : `${(mseconds / 1000).toFixed(1)} s`; }; + +export const getAverage = (arr: Array): number => { + return arr.reduce((sum, currentVal) => sum + currentVal) / arr.length; +}; + // Adapted from https://github.com/Modernizr/Modernizr/blob/master/feature-detects/emoji.js export const supportsEmoji = () => { const canvas = document.createElement("canvas");