0.3.2 • Published 7 years ago

koa2-useragent v0.3.2

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

koa2-useragent

Fast User Agent parser middleware

Latest Stable Version License NPM Downloads NPM Downloads

NPM

Install

npm install koa2-useragent

Easy usage

 const userAgent = require('koa2-useragent');

 app.use(userAgent());

 app.use(async (ctx, next) => {
    console.log(ctx.userAgent.isWebkit);
    console.log(ctx.userAgent.isChromeOS);
     await next();
 });

The module will display similar information

{ 
  browser: 'Chrome',
  version: '51.0.2704.106',
  engine: 'Webkit',
  arch: 'amd64',
  os: 'Linux 64',
  platform: 'Linux',
  geoIp: {},
  source: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36' 
  isMobile: false,
    isTablet: false,
    isiPad: false,
    isiPod: false,
    isiPhone: false,
    isAndroid: false,
    isBlackberry: false,
    isOpera: false,
    isIE: false,
    isEdge: false,
    isIECompatibilityMode: false,
    isSafari: false,
    isFirefox: false,
    isWebkit: false,
    isChrome: true,
    isKonqueror: false,
    isOmniWeb: false,
    isSeaMonkey: false,
    isFlock: false,
    isAmaya: false,
    isEpiphany: false,
    isDesktop: true,
    isWindows: false,
    isLinux: true,
    isLinux64: true,
    isMac: false,
    isChromeOS: false,
    isBada: false,
    isSamsung: false,
    isRaspberry: false,
    isBot: false,
    isCurl: false,
    isAndroidTablet: false,
    isWinJs: false,
    isKindleFire: false,
    isSilk: false,
    isCaptive: false,
    isSmartTV: false,
    isWechat: false,
    silkAccelerated: false,
}

You can easily filter the objects to the desired criteria

let userAgentStorage = [];
let filtered = [];
uas.push(ctx.userAgent); // Desktop user agent object
uas.push(ctx.userAgent); // Mobile user agent object

/**
 *  You will fetch only mobile and Android useragent
 */
filtered = userAgentStorage.filter((userAgent) => {
    if (userAgent.isMobile === true && userAgent.isAndroid === true) {
        return userAgent;
    }
});

/**
 * You'll get desktop users on Mac using Chrome
 */
filtered = userAgentStorage.filter((userAgent) => {
    if (userAgent.isDesktop === true && userAgent.isMac === true && userAgent.isChrome) {
        return userAgent;
    }
});

Author

Ivanov Nikita (robotomize@gmail.com). Based on express-useragent by Aleksej Gordejev (aleksej@gordejev.lv). express-useragent

0.3.2

7 years ago

0.3.1

7 years ago

0.2.8

8 years ago

0.2.6

9 years ago

0.2.4

9 years ago

0.2.3

9 years ago

0.2.2

9 years ago

0.2.1

9 years ago

0.2.0

9 years ago

0.1.8

9 years ago

0.1.6

10 years ago

0.1.4

10 years ago

0.1.3

10 years ago

0.1.2

10 years ago

0.1.1

10 years ago

0.1.0

10 years ago

0.0.3

10 years ago

0.0.2

10 years ago

0.0.1

10 years ago

0.0.0

10 years ago