devicer
v0.1.3
Published
Easily detect client device informations over http requests
Maintainers
Readme
DeviceR
Easily get informations about client devices over http requests.
We are adding more detections over time, there is a lot of stuff to keep track of.
Install and quick usage
npm install --save devicerTest it if you want to
npm testIn any NodeJS module
var devicer = require('devicer');
var details = devicer.parseUserAgent(userAgentString);
// or, if you have an http request object
details = devicer.detect(req);Connect/Express middleware (see below for configuration options)
var devicer = require('devicer');
var app = require('express');
// req.device will be available after this middleware
app.use(devicer.middleware());DeviceR API
devicer.detect(request)
Searches the request object for a User-Agent header and parses it
returns: object
devicer.parseUserAgent(userAgentString)
Parses the userAgentString
returns: object
devicer.middleware(options)
A middleware to use in connect/express applications.
You may pass an options object to configure the middleware behaviour.
The following example also illustrates the default behaviour.
var devicer = require('devicer');
var app = require('express');
app.use(devicer.middleware({
// The property name on req that will hold the parse result
propertyName: 'device',
// If an error occurs
onError: function(err, req, res, next) {
next(err);
},
// If parse is succesfull
onSuccess: function(req, res, next) {
next(); // no-op
}
}));Output API
Class Device
A Device instance is what a call to detect, parseUserAgent methods returns and the DeviceR middleware sets on the request device property.
Properties
Device.matchThe user agent string matched as validDevice.complianceThe user agent compliance level. Usually "Mozilla/5.0" in modern browsersDevice.platformThe platform on which the client is runningDevice.buildThe platform build, if specifiedDevice.additionalAny further specification on the user agentDevice.engineABrowserEngineinstance
Methods
Device#isIPadReturnstrueif the device is likely to be an iPadDevice#isIPhoneReturnstrueif the device is likely to be an iPhoneDevice#isAndroidReturnstrueif the device is likely to be an android deviceDevice#isDesktopReturnstrueif the device is likely to be a desktop computerDevice#isMobileReturnstrueif the device is likely to be a mobile deviceDevice#isWinReturnstrueif the device is running WindowsDevice#isOSXReturnstrueif the device is running MAC OSXDevice#isLinuxReturnstrueif the device is running Linux
Class BrowserEngine
Properties
BrowserEngine.nameThe browser name string
Methods
BrowserEngine#isChromeReturnstrueif it is a Chrome browserBrowserEngine#isWebKitReturnstrueif it is a WebKit based browserBrowserEngine#isFirefoxReturnstrueif it is a Firefox browserBrowserEngine#isOperaReturnstrueif it is an Opera browserBrowserEngine#isSafariReturnstrueif it is a Safari browserBrowserEngine#isIEReturnstrueif it is an Internet Explorer or Microsoft Edge browser
