@cerebral/useragent
Version:
Adds useragent specs to your cerebral state model
44 lines (32 loc) • 1.15 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = parseUserAgent;
var _uaParserJs = require('ua-parser-js');
var _uaParserJs2 = _interopRequireDefault(_uaParserJs);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var uaParser = new _uaParserJs2.default();
uaParser.setUA(navigator.userAgent);
function parseUserAgent(options) {
var parse = options.parse;
return Object.keys(parse).filter(isEnabled).reduce(function (all, key) {
var parseFunction = getParseFunction(key, uaParser);
if (typeof parseFunction !== 'function') {
throw new Error('Parsing the ' + key + ' from useragent is not supported.');
}
all[key] = parseFunction.call(uaParser);
return all;
}, {});
function isEnabled(key) {
return parse[key] === true;
}
}
function getParseFunction(prop, uaParser) {
var parseFunctionName = getParseFunctionName(prop);
return uaParser[parseFunctionName];
}
function getParseFunctionName(prop) {
return 'get' + (prop.charAt(0).toUpperCase() + prop.slice(1));
}
//# sourceMappingURL=parseUserAgent.js.map