1
0
mirror of https://github.com/lancedikson/bowser synced 2024-09-28 22:30:44 +00:00
lancedikson_bowser/src/bowser.js

51 lines
1.3 KiB
JavaScript
Raw Normal View History

2016-05-06 18:29:22 +00:00
/*!
* Bowser - a browser detector
2018-06-27 20:04:25 +00:00
* https://github.com/lancedikson/bowser
2018-06-27 19:52:43 +00:00
* MIT License | (c) Dustin Diaz 2012-2015
* MIT License | (c) Denis Demchenko 2015-2017
2016-05-06 18:29:22 +00:00
*/
2018-06-27 19:52:43 +00:00
import Parser from './parser';
2016-05-06 18:29:22 +00:00
2018-06-27 19:52:43 +00:00
/**
2018-07-05 19:44:43 +00:00
* Bowser class.
* Keep it simple as much as it can be.
* It's supposed to work with collections of {@link Parser} instances
2018-07-04 19:36:46 +00:00
* rather then solve one-instance problems.
* All the one-instance stuff is located in Parser class.
2018-06-27 19:52:43 +00:00
*/
class Bowser {
/**
2018-07-05 19:44:43 +00:00
* Creates a {@link module:parser:Parser} instance
2018-07-04 19:36:46 +00:00
*
2018-07-05 19:44:43 +00:00
* @param {String} UA UserAgent string
* @param {Boolean} [skipParsing=false] same as skipParsing for {@link Parser}
2018-07-04 19:36:46 +00:00
* @returns {Parser}
2018-07-05 19:44:43 +00:00
* @throws {Error} when UA is not a String
2016-06-16 10:41:21 +00:00
*
* @example
* const parser = Bowser.getParser(window.navigator.userAgent);
* const result = parser.getResult();
*/
2018-08-02 18:24:08 +00:00
static getParser(UA, skipParsing = false) {
2018-06-30 16:21:09 +00:00
if (typeof UA !== 'string') {
throw new Error('UserAgent should be a string');
}
2018-06-30 14:25:47 +00:00
return new Parser(UA, skipParsing);
}
2018-07-05 19:44:43 +00:00
/**
* Creates a {@link Parser} instance and runs {@link Parser.getResult} immediately
*
* @param UA
* @return {ParsedResult}
*
* @example
* const result = Bowser.parse(window.navigator.userAgent);
2018-07-05 19:44:43 +00:00
*/
2018-06-27 19:52:43 +00:00
static parse(UA) {
2018-07-05 19:58:14 +00:00
return (new Parser(UA)).getResult();
}
2018-06-27 19:52:43 +00:00
}
2011-04-27 22:14:35 +00:00
2018-06-27 19:52:43 +00:00
export default Bowser;