An experimental browser/os/rendering engine/bot detector with proxied API
npm install rowser --save
yarn add rowser --save
Method detect
runs detection process
Property summary
saves result of the last detection
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
Browser | Summary flag |
---|---|
Android Browser | androidbrowser |
BlackBerry Browser | blackberrybrowser , bbbrowser |
Chromium | chromium |
Google Chrome | chrome |
Google Search App | gsa , googlesearchapp |
Dolphin Browser | dolphin |
Dorothy Browser | dorothy |
Epiphany | epiphany |
Mozilla Firefox | firefox |
Mozilla Firefox Focus | firefox , firefoxfocus |
Microsoft Internet Explorer | msie |
K-Meleon | kmeleon |
Maxthon | maxthon |
Microsoft Edge | msedge |
OmniWeb | omniweb |
Opera | opera |
Opera Coast | opera , operacoast |
Opera Mini | opera , operamini |
Opera Mobile | opera , operamobile |
Opera Neon | opera , operaneon |
Pale Moon | palemoon |
PhantomJS | phantomjs |
Puffin | puffin |
QupZilla | qupzilla |
Rambler Browser | ramblerbrowser , nichrome |
Apple Safari | safari |
Sailfish Browser | sailfishbrowser |
Samsung Internet | samsungbrowser , samsunginternet |
SeaMonkey | seamonkey |
Amazon Silk | silk |
Skyfire | skyfire |
Sleipnir | sleipnir |
SlimerJS | slimerjs |
Tesla Car Browser | teslacarbrowser , qtcarbrowser |
Tizen Browser | tizenbrowser |
UC Browser | ucbrowser |
Vivaldi | vivaldi |
webOS Browser | webosbrowser |
Yandex Browser | yandexbrowser |
Rendering engine | Summary flag |
---|---|
Blink | blink |
EdgeHTML | edgehtml |
Gecko | gecko |
Goanna | goanna |
Presto | presto |
Trident | trident |
WebKit | webkit |
Operating system | Summary flag |
---|---|
Android | android |
(SOON) Android TV | androidtv |
(SOON) Bada | bada |
BlackBerry OS | blackberry |
Chrome OS | chromeos |
(SOON) Firefox OS | firefoxos , fxos |
iOS | ios |
Linux | linux |
macOS | macos |
NetCast | netcast |
Sailfish | sailfish |
Tizen | tizen |
webOS | webos |
Windows | windows |
Windows Phone | windowsphone |
Bots/Crawlers/Spiders | Summary flag |
---|---|
Alexa Crawlers | alexacrawler |
Baidu Spiders | baiduspider |
Bing Crawlers | bingbot |
DuckDuckBot | duckduckbot |
Exabot | exabot |
Facebook Bot | facebookbot |
Google Crawlers | googlebot |
LinkedIn Bot | linkedinbot |
Majestic-12 Crawler | mj12bot |
Pinterest Bot | pinterestbot |
SlackBot | slackbot |
Sogou Spiders | sogouspider |
StackRambler | stackrambler |
TelegramBot | telegrambot |
Twitter Bot | twitterbot |
WhatsApp Bot | whatsappbot |
Yahoo! Slurp | yahooslurp |
Yandex Crawlers | yandexbot |
MIT © Alex Orekhov