diff --git a/src/bowser.js b/src/bowser.js index 265c236..67136ed 100644 --- a/src/bowser.js +++ b/src/bowser.js @@ -2,7 +2,7 @@ * Bowser - a browser detector * https://github.com/lancedikson/bowser * MIT License | (c) Dustin Diaz 2012-2015 - * MIT License | (c) Denis Demchenko 2015-2017 + * MIT License | (c) Denis Demchenko 2015-2019 */ import Parser from './parser.js'; import { @@ -12,21 +12,37 @@ import { PLATFORMS_MAP, } from './constants.js'; +/** + * @class + * @property name + */ +class BowserUAIsNotAStringError extends Error { + constructor(message) { + super(message); + this.name = 'BowserUAIsNotAStringError'; + } +} + /** * Bowser class. * Keep it simple as much as it can be. * It's supposed to work with collections of {@link Parser} instances * rather then solve one-instance problems. * All the one-instance stuff is located in Parser class. + * + * @class + * @classdesc Bowser is a static object, that provides an API to the Parsers + * @hideconstructor */ class Bowser { /** - * Creates a {@link module:parser:Parser} instance + * Creates a {@link Parser} instance * * @param {String} UA UserAgent string - * @param {Boolean} [skipParsing=false] same as skipParsing for {@link Parser} + * @param {Boolean} [skipParsing=false] Will make the Parser postpone parsing until you ask it + * explicitly. Same as `skipParsing` for {@link Parser}. * @returns {Parser} - * @throws {Error} when UA is not a String + * @throws {BowserUAIsNotAStringError} when UA is not a String * * @example * const parser = Bowser.getParser(window.navigator.userAgent); @@ -34,7 +50,7 @@ class Bowser { */ static getParser(UA, skipParsing = false) { if (typeof UA !== 'string') { - throw new Error('UserAgent should be a string'); + throw new BowserUAIsNotAStringError('UserAgent should be a string'); } return new Parser(UA, skipParsing); }