Simplify detecting your browser
npm install browser-detectbash
$ npm install browser-detect
`
#### yarn
`bash
$ yarn add browser-detect
`
:page_with_curl: Example
$3
`html
`
`javascript
const result = browserDetect();
console.log(result);
`
output
`javascript
{
name: 'chrome',
version: '58.0.3029',
versionNumber: 58.03029,
mobile: false,
os: 'Windows NT 10.0'
}
`
$3
`javascript
import browser from 'browser-detect';
const result = browser();
console.log(result);
`
output
`javascript
{
name: 'chrome',
version: '58.0.3029',
versionNumber: 58.03029,
mobile: false,
os: 'Windows NT 10.0'
}
`
$3
Just simple :trollface:
`javascript
const browser = require('browser-detect');
const result = browser();
console.log(result);
`
output
`javascript
{
name: 'node',
version: '9.9.0',
versionNumber: 9.9,
mobile: false,
os: 'win32'
}
`
$3
`javascript
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
`javascript
{
name: 'ie',
version: '9.0',
versionNumber: 9,
mobile: false,
os: 'Windows NT 10.0'
}
`
Or set a middleware and send to res.locals.
`javascript
// browserDetectMiddleware.js
const browser = require('browser-detect');
const MiddleWare = () => req => {
res.locals.browser = browser(req.headers['user-agent']);
next();
};
module.exports = MiddleWare;
`
`javascript
// app.js
const express = require('express');
const browserDetectMiddleware = require('./browserDetectMiddleware');
const app = express();
app.use(browserDetectMiddleware())
`
View will can access browser variable.
`ejs
<%=JSON.stringify(browser)%>
`
output
`javascript
"{ name: 'firefox', version: '53.0.0', versionNumber: 53, mobile: false, os: 'Windows NT 10.0' }"
`
:page_with_curl: 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
`bash
$ node ./examples/server.js
`
:zap: 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 |
:triangular_flag_on_post: Roadmap
- [x] detect browser both compatible client and server
- [x] support AMD and CommonJS module feature
- [x] support typings
- [x] support guideline and documentations for contributors
- [x] support browser compatity to IE7
- [x] support to detect mobile and OS
- [x] support CI (TravisCI)
- [x] support unit tests
- [ ] support e2e tests
- [ ] suport cdn
:mag_right: Compatibility
- [x] IE 7+
- [x] Chrome (Windows, MacOS)
- [x] Edge
- [x] Firefox
- [x] Safari (Windows, MacOS)
- [x] Opera
- [x] Android
- [x] Chromium Browsers (Will be named chrome)
:octocat: Contribution
$3
1. clone project from Github
`bash
$ git clone git@github.com:KennethanCeyer/browser-detect.git
`
2. install npm packages
`bash
$ cd browser-detect
$ npm install
`
3. build sources
`bash
$ npm run build
`
$3
`bash
$ npm run test
``