51degrees

51degrees c-sdk native bindings for nodejs

Stats

stars 🌟issues ⚠️updated 🛠created 🐣size 🏋️‍♀️
130Jul 6, 2017Aug 30, 2014Minified + gzip package size for 51degrees in KB

Readme

51degrees.node

![Gitter](https://badges.gitter.im/Join Chat.svg)

51degrees c-sdk native bindings for nodejs, it helps you detect devices from userAgent in high performance.

NPM NPM

Windows Mac/Linux
Build status Build Status

API

.Parse(filename[, properties, options])
  • filename {String} your 51degrees data, lite or premium.

  • properties {Array} optional, required properties

  • options {Object}

  • options.autoUpdate {Boolean} enable/disable autoUpdate feature

  • options.key {String} auto-update requires a licesen key from 51Degrees

  • options.interval {Integer}, default value 30 * 60 * 1000 (half hours)

  • options.onupdated {Function} if auto updated, you will get call at this function

for more information, you could move to 51degrees documentation

parser.parse(userAgent)
  • userAgent {String}

parse the userAgent given by you, and return result of that.

Usage

var Parser = require('51degrees').Parser;
var psr = new Parser('51Degrees-Lite.dat');
var userAgent = '...'; // your userAgent in any clients(browser/ios/android)
var ret = psr.parse(userAgent);
console.log(ret);
Create an auto-updated pattern parser
var psr = new Parser('51Degrees-Lite.dat', [], {
  autoUpdate: true,
  key: 'your license key'
});

Note: this feature only is used at pattern data.

After the above program, you will get:

{ Id: '17595-21721-21635-18092',
  Canvas: true,
  CssTransforms: true,
  CssTransitions: true,
  History: true,
  Html5: true,
  IndexedDB: true,
  IsMobile: false,
  Json: true,
  PostMessage: true,
  Svg: true,
  TouchEvents: true,
  WebWorkers: true,
  method: 'trie',
  data: {} }
.ALL_PROPERTIES

51Degrees.node exposure ALL_PROPERTIES to shortly fetch all propertites from userAgent, just using like this:

var properties = require('51degrees').ALL_PROPERTIES;
var userAgent = '...' // your userAgent in any clients(browser/ios/android)
var psr = new Parser('51Degrees-Lite.trie', properties);
var ret = psr.parse(userAgent);
console.log(ret);

Then will print the whole properties, it's super useful for overview of this module and 51Degrees product.

Properties

The following list shows all properties that 51degrees would export in json:

  • AnimationTiming
  • BlobBuilder
  • Canvas
  • CssBackground
  • CssBorderImage
  • CssCanvas
  • CssColor
  • CssColumn
  • CssFlexbox
  • CssFont
  • CssImages
  • CssMediaQueries
  • CssMinMax
  • CssOverflow
  • CssPosition
  • CssText
  • CssTransforms
  • CssTransitions
  • CssUI
  • DataSet
  • DataUrl
  • DeviceOrientation
  • FileReader
  • FileSaver
  • FileWriter
  • FormData
  • Fullscreen
  • GeoLocation
  • History
  • Html5
  • Html-Media-Capture
  • Id
  • Iframe
  • IndexedDB
  • IsMobile
  • Json
  • LayoutEngine
  • Masking
  • PostMessage
  • Progress
  • Prompts
  • ScreenPixelsHeight
  • ScreenPixelsWidth
  • Selector
  • Svg
  • TouchEvents
  • Track
  • Video
  • Viewport
  • WebWorkers
  • Xhr

Installation

$ npm install 51degrees --save

License

MPL

If you find any bugs or have a feature request, please open an issue on github!

The npm package download data comes from npm's download counts api and package details come from npms.io.