0.6.0 • Published 7 years ago

rowser v0.6.0

Weekly downloads
3
License
MIT
Repository
github
Last release
7 years ago

rowser

An experimental generator-based browser/os/bot detector with proxied API

Build Status Build status codecov Coverage Status CodeFactor npm version npm David Known Vulnerabilities FOSSA Status

Table of contents

  1. Installation
  2. API
  3. Usage
  4. Possible flags
  5. License

Installation

npm install rowser --save
yarn add rowser --save

Back to top

API

detect(ua: string = window.navigator.userAgent) => Object

Method detect runs detection process

summary: Object

Property summary saves result of the last detection

Back to top

Usage

By default, rowser gets window.navigator.userAgent as its ua parameter. So in browser environment you can simply do:

rowser.detect();

Also you can use custom useragent string:

const someMobilaUA = 'Mozilla/5.0 (iPhone; CPU iPhone OS 7_0_4 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Mobile/11B554a';

rowser.detect(someMobilaUA);

After that, rowser.detect(ua) returns PlainObject as result:

rowser.detect(someMobilaUA);
// =>
//  {
//    device: "iPhone",
//    engine: "WebKit",
//    engineversion: "537.51",
//    ios: true,
//    name: "Safari",
//    osname: "iOS",
//    osversion: "7.0.4",
//    safari: true,
//    version: "",
//    webkit: true
//  }

NOTE: if you call rowser.detect('') you will get an empty object:

rowser.detect('');
// => {}

After detection rowser saves result in its property called summary:

rowser.summary
// =>
//  {
//    device: "iPhone",
//    engine: "WebKit",
//    engineversion: "537.51",
//    ios: true,
//    name: "Safari",
//    osname: "iOS",
//    osversion: "7.0.4",
//    safari: true,
//    version: "",
//    webkit: true
//  }

NOTE: When detection is done rowser's proxied API will allow you to get result's directly:

rowser.device
// => 'iPhone'

rowser.ios
// => true

rowser.osversion
// => '7.0.4'

Additionally for boolean props, you can add is-prefixes to props names:

rowser.isWebkit
// => true

rowser.iswebkit
// => true

rowser.isWeBkIt
// => true

rowser.isWEBKIT
// => true

rowser.isSafari
// => true

rowser.issafari
// => true

rowser.isSaFArI
// => true

rowser.isSAFARI
// => true

NOTE: is-prefixed props are case insensetive

Back to top

Possible flags

Browsers

BrowserSummary flag
Android Browserandroidbrowser
BlackBerry Browserblackberrybrowser, bbbrowser
Chromiumchromium
Google Chromechrome
Google Search Appgsa, googlesearchapp
Dolphin Browserdolphin
Dorothy Browserdorothy
Epiphanyepiphany
Mozilla Firefoxfirefox
Mozilla Firefox Focusfirefox, firefoxfocus
Microsoft Internet Explorermsie
K-Meleonkmeleon
Maxthonmaxthon
Microsoft Edgemsedge
OmniWebomniweb
Operaopera
Opera Coastopera, operacoast
Opera Miniopera, operamini
Opera Mobileopera, operamobile
Opera Neonopera, operaneon
Pale Moonpalemoon
PhantomJSphantomjs
Puffinpuffin
QupZillaqupzilla
Rambler Browserramblerbrowser, nichrome
Apple Safarisafari
Sailfish Browsersailfishbrowser
Samsung Internetsamsungbrowser, samsunginternet
SeaMonkeyseamonkey
Amazon Silksilk
Skyfireskyfire
Sleipnirsleipnir
SlimerJSslimerjs
Tesla Car Browserteslacarbrowser, qtcarbrowser
Tizen Browsertizenbrowser
UC Browserucbrowser
Vivaldivivaldi
webOS Browserwebosbrowser
Yandex Browseryandexbrowser

Rendering engines

Rendering engineSummary flag
Blinkblink
EdgeHTMLedgehtml
Geckogecko
Goannagoanna
Prestopresto
Tridenttrident
WebKitwebkit

Operating systems

Operating systemSummary flag
Androidandroid
(SOON) Android TVandroidtv
(SOON) Badabada
BlackBerry OSblackberry
Chrome OSchromeos
(SOON) Firefox OSfirefoxos, fxos
iOSios
Linuxlinux
macOSmacos
NetCastnetcast
Sailfishsailfish
Tizentizen
webOSwebos
Windowswindows
Windows Phonewindowsphone

Bots

Bots/Crawlers/SpidersSummary flag
Alexa Crawlersalexacrawler
Baidu Spidersbaiduspider
Bing Crawlersbingbot
DuckDuckBotduckduckbot
Exabotexabot
Facebook Botfacebookbot
Google Crawlersgooglebot
LinkedIn Botlinkedinbot
Majestic-12 Crawlermj12bot
Pinterest Botpinterestbot
SlackBotslackbot
Sogou Spiderssogouspider
StackRamblerstackrambler
TelegramBottelegrambot
Twitter Bottwitterbot
WhatsApp Botwhatsappbot
Yahoo! Slurpyahooslurp
Yandex Crawlersyandexbot

Back to top

License

MIT © Alex Orekhov

FOSSA Status

Back to top