0.1.3 • Published 9 years ago
devicer v0.1.3
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 valid
- Device.complianceThe user agent compliance level. Usually "Mozilla/5.0" in modern browsers
- Device.platformThe platform on which the client is running
- Device.buildThe platform build, if specified
- Device.additionalAny further specification on the user agent
- Device.engineA- BrowserEngineinstance
Methods
- Device#isIPadReturns- trueif the device is likely to be an iPad
- Device#isIPhoneReturns- trueif the device is likely to be an iPhone
- Device#isAndroidReturns- trueif the device is likely to be an android device
- Device#isDesktopReturns- trueif the device is likely to be a desktop computer
- Device#isMobileReturns- trueif the device is likely to be a mobile device
- Device#isWinReturns- trueif the device is running Windows
- Device#isOSXReturns- trueif the device is running MAC OSX
- Device#isLinuxReturns- trueif the device is running Linux
Class BrowserEngine
Properties
- BrowserEngine.nameThe browser name string
Methods
- BrowserEngine#isChromeReturns- trueif it is a Chrome browser
- BrowserEngine#isWebKitReturns- trueif it is a WebKit based browser
- BrowserEngine#isFirefoxReturns- trueif it is a Firefox browser
- BrowserEngine#isOperaReturns- trueif it is an Opera browser
- BrowserEngine#isSafariReturns- trueif it is a Safari browser
- BrowserEngine#isIEReturns- trueif it is an Internet Explorer or Microsoft Edge browser