You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
103 lines
1.8 KiB
103 lines
1.8 KiB
var Parser = require('./parser');
|
|
/*!
|
|
* Bowser - a browser detector
|
|
* https://github.com/ded/bowser
|
|
* MIT License | (c) Dustin Diaz 2012-2015
|
|
* MIT License | (c) Denis Demchenko 2015-2017
|
|
*/
|
|
|
|
/*
|
|
* Ideas
|
|
* - Cacheable response
|
|
* */
|
|
|
|
/**
|
|
* Bowser class
|
|
*/
|
|
class Bowser {
|
|
/**
|
|
* Creates an object that parse UA
|
|
* @param UA
|
|
*
|
|
* @example
|
|
* const bowser = new Bowser(window.navigator.userAgent);
|
|
* bowser.getBrowser()
|
|
*/
|
|
constructor(UA) {
|
|
if (!UA) {
|
|
throw new Error('UserAgent is not defined');
|
|
}
|
|
this._ua = UA;
|
|
this._parser = new Parser(UA);
|
|
}
|
|
|
|
/**
|
|
* Get browser's version
|
|
* @returns {String}
|
|
*/
|
|
getBrowserVersion() {
|
|
return this._parser.getBrowserVersion();
|
|
}
|
|
|
|
/**
|
|
* Get a browser's name
|
|
* @returns {String}
|
|
*/
|
|
getBrowserName() {
|
|
return this._parser.getBrowserName();
|
|
}
|
|
|
|
/**
|
|
* Get an object with a name and version of the browser
|
|
* @returns {Object}
|
|
*/
|
|
getBrowser() {
|
|
return this._parser.getBrowser();
|
|
}
|
|
|
|
/**
|
|
* Get an object with a name and version of the OS if it's defined
|
|
* @returns {Object}
|
|
*/
|
|
getOS() {
|
|
return this._parser.getOS();
|
|
}
|
|
|
|
/**
|
|
* Get name of OS
|
|
* @returns {String}
|
|
*/
|
|
getOSName() {
|
|
return this._parser.getOSName();
|
|
}
|
|
|
|
/**
|
|
* Get OS version
|
|
*/
|
|
getOSVersion() {
|
|
return this._parser.getOSVersion();
|
|
}
|
|
|
|
/**
|
|
* Check if the browser is in range or not
|
|
* @param {Object} range
|
|
* @returns {Boolean}
|
|
*/
|
|
static inRange(range) {
|
|
if (!range) {
|
|
throw new Error('Range can not be empty');
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Check if the browser is NOT in range or not
|
|
* @param {Object} range
|
|
* @returns {Boolean}
|
|
*/
|
|
static notInRange(range) {}
|
|
|
|
|
|
// static filter(UACollection, range) {}
|
|
// static inRange(range, UACollection) {}
|
|
}
|