faisalman / ua-parser-js

UAParser.js - The Essential Web Development Tool for User-Agent Detection.

Home Page:https://uaparser.dev/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Easier way of combining all extensions

opablo opened this issue · comments

While reading the 2.0.0-beta documentation here:
https://docs.uaparser.js.org/v2/api/submodules/extensions/overview.html

I learned that the required way of combining multiple Extensions is like this:

const botAndCLIParser = new UAParser(userAgentString, { browser : [...Bots.browser, ...CLIs.browser] })

it would be so much intuitive and simple to use if the library supports simply this:

const botAndCLIParser = new UAParser(userAgentString, [Bots, CLIs])

as an example of how ugly it can get...
I wanted to implement the parsing of all possible known user agents and my code ended up like this:

  const uaParser = new UAParser(userAgent, {
    browser: [...Apps.browser, ...Bots.browser, ...CLIs.browser, ...Emails.browser, ...MediaPlayers.browser, ...Modules.browser],
    device: ExtraDevices.device
  })
  const uaParams = uaParser.getResult()

when it could have been as intuitive and simple as this:

  const uaParser = new UAParser(userAgent, [Apps, Bots, CLIs, Emails, ExtraDevices, MediaPlayers, Modules])
  const uaParams = uaParser.getResult()