UNPKG

@amaui/utils

Version:
43 lines (34 loc) 2.25 kB
import isEnvironment from './isEnvironment'; export default function isBrowser(type, value) { var _value_$chrome, _value_$chrome2, _value_$opr, _value_$safari; let value_; switch (type) { case 'chrome': value_ = value !== undefined ? value : isEnvironment('browser') && window; return isEnvironment('browser') && (!!((_value_$chrome = value_['chrome']) !== null && _value_$chrome !== void 0 && _value_$chrome.webstore || (_value_$chrome2 = value_['chrome']) !== null && _value_$chrome2 !== void 0 && _value_$chrome2.runtime) || value_.navigator.userAgent.indexOf('Chrome') > -1); case 'opera': value_ = value !== undefined ? value : isEnvironment('browser') && window; return isEnvironment('browser') && (!!((_value_$opr = value_['opr']) !== null && _value_$opr !== void 0 && _value_$opr.addons) || !!value_['opera'] || value_.navigator.userAgent.indexOf(' OPR') > -1); case 'firefox': value_ = value !== undefined ? value : isEnvironment('browser') && window; return isEnvironment('browser') && (typeof value_['InstallTrigger'] !== 'undefined' || ['Firefox'].some(value__ => value_.navigator.userAgent.indexOf(value__) > -1)); case 'safari': value_ = value !== undefined ? value : isEnvironment('browser') && window; return isEnvironment('browser') && function (p) { return p.toString() === '[object SafariRemoteNotification]'; }(!value_['safari'] || ((_value_$safari = value_['safari']) === null || _value_$safari === void 0 ? void 0 : _value_$safari.pushNotification)); case 'edge-chromium': value_ = value !== undefined ? value : isEnvironment('browser') && window; return isEnvironment('browser') && isBrowser('chrome', value) && value_.navigator.userAgent.indexOf('Edg') > -1; case 'edge': value_ = value !== undefined ? value : isEnvironment('browser') && window; return isEnvironment('browser') && !isBrowser('ie', value) && value_.navigator.userAgent.indexOf('Edg') > -1; case 'ie': value_ = value !== undefined ? value : isEnvironment('browser') && window; return isEnvironment('browser') && ( /*@cc_on!@*/ false || !!value_.document['documentMode']); default: return false; } }