koa2-useragent

0.3.2 • Public • Published

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

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 0.3.2
    524
    • latest

Version History

Package Sidebar

Install

npm i koa2-useragent

Weekly Downloads

612

Version

0.3.2

License

MIT

Unpacked Size

126 kB

Total Files

30

Last publish

Collaborators

  • robotomize