Nodding Previously Managed

    browser-detect
    TypeScript icon, indicating that this package has built-in type declarations

    0.2.28 • Public • Published

    NPM

    npm version npm Join the chat at https://gitter.im/KennethanCeyer/PIGNOSE GitHub stars License: MIT

    Build Status Coverage Status codecov

    CodeFactor Maintainability Test Coverage dependencies Status devDependencies Status

    📦 Installation

    npm

    $ npm install browser-detect

    yarn

    $ yarn add browser-detect

    📃 Example

    Web

    <script src="node_modules/browser-detect/dist/browser-detect.umd.js"></script>
    const result = browserDetect();
    console.log(result);

    output

    {
        name: 'chrome',
        version: '58.0.3029',
        versionNumber: 58.03029,
        mobile: false,
        os: 'Windows NT 10.0'
    }

    Web with module

    import browser from 'browser-detect';
     
    const result = browser();
    console.log(result);

    output

    {
        name: 'chrome',
        version: '58.0.3029',
        versionNumber: 58.03029,
        mobile: false,
        os: 'Windows NT 10.0'
    }

    NodeJS

    Just simple :trollface:

    const browser = require('browser-detect');
    const result = browser();
     
    console.log(result);

    output

    {
        name: 'node',
        version: '9.9.0',
        versionNumber: 9.9,
        mobile: false,
        os: 'win32'
    }

    NodeJS with Express

    const router = express.Router();
    const browser = require('browser-detect');
     
    router.get('/', req => {
        const result = browser(req.headers['user-agent']);
        console.log(result);
    });
     
    return router;

    output

    {
        name: 'ie',
        version: '9.0',
        versionNumber: 9,
        mobile: false,
        os: 'Windows NT 10.0'
    }

    Or set a middleware and send to res.locals.

    // browserDetectMiddleware.js
    const browser = require('browser-detect');
     
    const MiddleWare = () => req => {
        res.locals.browser = browser(req.headers['user-agent']);
        next();
    };
     
    module.exports = MiddleWare;
    // app.js
     
    const express = require('express');
    const browserDetectMiddleware = require('./browserDetectMiddleware');
     
    const app = express();
    app.use(browserDetectMiddleware())

    View will can access browser variable.

    <!-- view.ejs -->
     
    <%=JSON.stringify(browser)%>

    output

    "{ name: 'firefox', version: '53.0.0', versionNumber: 53, mobile: false, os: 'Windows NT 10.0' }"

    📃 Demo

    Web

    • open examples/client.html by your browser.

    NodeJS

    • open command or terminal
    • move directory to browser-detect path that you download
    • type following code
    $ node ./examples/server.js

    ⚡️ Type

    name type description example
    name string a browser name ie, chrome, firefox
    version string browser or node version 59.2.22
    versionNumber number browser or node number casted to number 59.222
    mobile boolean if browser is in mobile environment, it will be true ture
    os string os type name Windows NT 10.0

    🚩 Roadmap

    • detect browser both compatible client and server
    • support AMD and CommonJS module feature
    • support typings
    • support guideline and documentations for contributors
    • support browser compatity to IE7
    • support to detect mobile and OS
    • support CI (TravisCI)
    • support unit tests
    • support e2e tests
    • suport cdn

    🔎 Compatibility

    • IE 7+
    • Chrome (Windows, MacOS)
    • Edge
    • Firefox
    • Safari (Windows, MacOS)
    • Opera
    • Android
    • Chromium Browsers (Will be named chrome)

    :octocat: Contribution

    environment

    1. clone project from Github
    $ git clone git@github.com:KennethanCeyer/browser-detect.git
    1. install npm packages
    cd browser-detect
    $ npm install
    1. build sources
    $ npm run build

    test

    $ npm run test

    💛 Contributors

    🔎 License

    FOSSA Status

    Install

    npm i browser-detect

    DownloadsWeekly Downloads

    22,393

    Version

    0.2.28

    License

    MIT

    Unpacked Size

    154 kB

    Total Files

    12

    Last publish

    Collaborators

    • kenneth-ceyer