• Stars
    star
    132
  • Rank 265,617 (Top 6 %)
  • Language
    TypeScript
  • License
    MIT License
  • Created about 7 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

🌐 simplify detecting your browser.

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

πŸ“¦ 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 true
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 [email protected]: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

More Repositories

1

tutorial-git

πŸ“˜ μ–΄λ–»κ²Œ 깃을 μ‚¬μš©ν•˜λŠ”μ§€ λΉ λ₯΄κ²Œ μ•Œμ•„λ΄…μ‹œλ‹€. (Quick learn How to use Git.)
285
star
2

pg-calendar

πŸ“† beautiful and eidetic date picker
JavaScript
127
star
3

formulize

🌘 formula ui generator
TypeScript
92
star
4

awesome-llm

Awesome series for Large Language Model(LLM)s
58
star
5

metric-parser

πŸ“œ AST-based advanced mathematical parser written by Typescript.
TypeScript
31
star
6

hypermodel

πŸ‘Ύ related model builder library
JavaScript
27
star
7

awesome-data-pipeline

Awesome list for datapipeline
20
star
8

awesome-llmops

Awesome series for LLMOps
20
star
9

learn-golang-kr

πŸ“– golang korean translation project(golang ν•œκ΅­μ–΄ λ²ˆμ—­ ν”„λ‘œμ νŠΈ)
17
star
10

parallax-slider

🌁 awesome parallax slider
JavaScript
14
star
11

up

Experimental: Thread-friendly interpreter programming language
Go
13
star
12

pg-gallery

🎨 PIGNOSE Gallery is so simple and fast gallery style component.
JavaScript
12
star
13

awesome-numpy

Awesome list of NumPy
8
star
14

pg-tab

✨ web accessibility be supported a responsible tab plugin.
HTML
5
star
15

pg-popup

🌌 PIGNOSE Popup is simple flat design modal plugin.
HTML
4
star
16

awesome-cafe

Awesome list of cafe for developers
4
star
17

gowap

πŸ”’ ssh key manager written in go
Go
4
star
18

gdg-devfest-seoul-frontend-frameworks

πŸ“¦ GDG DevFest Seoul 2017 ν”„λ‘ νŠΈμ—”λ“œ λͺ¨λ˜ ν”„λ ˆμž„μ›Œν¬ λ‚±λ‚±νžˆ νŒŒν—€μΉ˜κΈ° μ„Έμ…˜μ˜ 3가지 ν”„λ ˆμž„μ›Œν¬ 별 μ½”λ“œλΉ„κ΅λ₯Ό μœ„ν•œ λ¦¬ν¬μ§€ν† λ¦¬μž…λ‹ˆλ‹€.
JavaScript
4
star
19

pycon-kr-2018

πŸ“¦ gracefully testing and refactoring
Python
3
star
20

resume

πŸ“‹ a personal resume
3
star
21

pycon-kr-2017

πŸ“¦ reactive programming with RxPy (PyCon Korea 2017).
Python
3
star
22

vscode-io-extension

πŸŽ‰ io language syntax highlighting as vscode extension
3
star
23

ast

πŸ”‰ Advanced sound tool written in Golang
Go
3
star
24

hiss

🐍 python database migration tool based on git's design
Python
2
star
25

sparrow

🐦 Golang env based configure management module which is supported yaml, toml, json
Go
2
star
26

battle-net-chatting

πŸ’¬ Warcraft III Battle Net v1.0 Chatting Program for Windows.
C#
2
star
27

hashids-io

πŸ‘» the implementation of hashids for io lang.
Io
2
star
28

fastcampus-mlops

Python
2
star
29

bire

πŸ‘· Initial environment automated management tool by cli-interface
1
star
30

git-bot

Commandable git cli based on GPT-3
1
star
31

sally

🌌 automated install dataset for object detection as yolo, vision
Python
1
star
32

angular-benchmark

πŸ“ˆ the performance between angular 1x, 2x and reactjs.
JavaScript
1
star
33

danger-go

πŸ’Ž A Dangerfile for golang developer (golint)
Ruby
1
star
34

dup

πŸ“ A duplicated issue and PR checking tool
Vue
1
star
35

OKR

😎 Personal OKR for improving self
1
star
36

items

πŸ”§ Rust cli tool which selectable prompt based on user interaction.
Rust
1
star
37

awesome-audio-speech

Awesome list of Audio, Speech, and DSP(Digital signal processing)
1
star