UNPKG

@e-group/utils

Version:

eGroup team utils that share across projects.

73 lines (64 loc) 2.26 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = getDeviceInfo; var _mobileDetect = _interopRequireDefault(require("mobile-detect")); /* eslint-disable no-underscore-dangle */ function getDeviceInfo() { if (typeof window !== 'undefined') { var _md$phone, _md$tablet, _md$mobile, _md$os, _md$userAgent, _md$mobileGrade; const md = new _mobileDetect.default(window.navigator.userAgent); const rules = _mobileDetect.default._impl.mobileDetectRules; const sections = ['phones', 'tablets', 'oss', 'uas', 'utils']; const outcome = []; outcome.push({ phone: (_md$phone = md.phone()) !== null && _md$phone !== void 0 ? _md$phone : 'Unknow' }); outcome.push({ tablet: (_md$tablet = md.tablet()) !== null && _md$tablet !== void 0 ? _md$tablet : 'Unknow' }); outcome.push({ mobile: (_md$mobile = md.mobile()) !== null && _md$mobile !== void 0 ? _md$mobile : 'Unknow' }); outcome.push({ os: (_md$os = md.os()) !== null && _md$os !== void 0 ? _md$os : 'Unknow' }); outcome.push({ userAgent: (_md$userAgent = md.userAgent()) !== null && _md$userAgent !== void 0 ? _md$userAgent : 'Unknow' }); outcome.push({ mobileGrade: (_md$mobileGrade = md.mobileGrade()) !== null && _md$mobileGrade !== void 0 ? _md$mobileGrade : 'Unknow' }); outcome.push({ smallerSide: _mobileDetect.default._impl.getDeviceSmallerSide() }); sections.forEach(section => { Object.keys(rules[section]).filter(key => md.is(key)).forEach(key => { outcome.push({ key: "is(".concat(key, ")"), val: true }); }); }); Object.keys(rules.props).forEach(propKey => { const versionStr = md.versionStr(propKey); if (versionStr) { outcome.push({ key: "versionStr(".concat(propKey, ")"), val: versionStr }); } const version = md.version(propKey); if (version) { outcome.push({ key: "version(".concat(propKey, ")"), val: version }); } }); return outcome; } return undefined; }