Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
export default function getHardwareConcurrency() {
let initialHardwareConcurrency;
if (typeof window.navigator !== 'undefined' && 'hardwareConcurrency' in window.navigator) {
initialHardwareConcurrency = { numberOfLogicalProcessors: window.navigator.hardwareConcurrency };
} else {
initialHardwareConcurrency = { unsupported: true };
}
return initialHardwareConcurrency;
}
export default function getMemoryStatus() {
let unsupported;
if (typeof window.navigator !== 'undefined' && 'deviceMemory' in window.navigator) {
unsupported = false;
} else {
unsupported = true;
}
let initialMemoryStatus;
if (!unsupported) {
const performanceMemory = 'memory' in window.performance ? window.performance.memory : null;
initialMemoryStatus = {
deviceMemory: window.navigator.deviceMemory,
totalJSHeapSize: performanceMemory ? performanceMemory.totalJSHeapSize : null,
usedJSHeapSize: performanceMemory ? performanceMemory.usedJSHeapSize : null,
jsHeapSizeLimit: performanceMemory ? performanceMemory.jsHeapSizeLimit : null
};
} else {
initialMemoryStatus = { unsupported };
}
export default function getNetworkStatus() {
if ('connection' in window.navigator && 'effectiveType' in window.navigator.connection) {
unsupported = false;
} else {
unsupported = true;
}
return !unsupported ? {
effectiveConnectionType: window.navigator.connection.effectiveType
} : {
unsupported
};
}
export default function getSaveDataStatus() {
let unsupported;
if ('connection' in window.navigator && 'saveData' in window.navigator.connection) {
unsupported = false;
} else {
unsupported = true;
}
const isEnabled = unsupported ? null : window.navigator.connection.saveData === true;
return { unsupported, isEnabled }
}