@amaui/utils
Version:
43 lines (34 loc) • 2.25 kB
JavaScript
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;
}
}