all files / src/definitions/ Browser.js

76.92% Statements 10/13
52.94% Branches 9/17
100% Functions 0/0
76.92% Lines 10/13
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37                                                     
import {browserDetails, browserShim} from 'webrtc-adapter';
import Webcom from 'webcom/webcom';
 
/**
 * The current browser's infos
 * @typedef {Object} Browser
 * @property {string} name - current browser's name
 * @property {number} [version] - current browser's version
 * @property {number} [minVersion] - current browser's minimum supported version
 * @property {boolean} compatible - is current browser supported ?
 */
export const browser = Object.assign({
	compatible: !/\s/.test(browserDetails.browser) &&
		(!browserDetails.minVersion || browserDetails.version >= browserDetails.minVersion)
}, browserDetails);
 
const version = `Reach v${SDK_VERSION} | Schema ${SCHEMA_VERSION} | Webcom v${Webcom.SDK_VERSION}`;
let message = '';
Iif(browser.version === null) {
	message = 'Unsupported browser: browser must support WebRTC Peer-to-peer connections to use Reach';
} else Iif (browser.minVersion && browser.minVersion > browser.version) {
	message = `Unsupported browser: browser is outdated, update to latest version (${browser.minVersion}+)`;
} else Iif(!browserShim){
	message = 'No shim for your browser. There might a problem with your package.';
}
 
// Log browser status & SDKs versions on load
let args = [`${version} ${message}`];
Eif(/^(chrome|firefox)$/.test(browser.browser)) {
	args = [
		`%c ${version} %c ${message}`,
		`background: ${browser.compatible ? '#f50' : 'red'}; color: #fff; font-weight: bold`,
		`color: ${browser.compatible ? 'inherit' : 'red'}`
	];
}
console.log(...args);