๐ฆ 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
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)
Contribution
environment
- clone project from Github
$ git clone [email protected]:KennethanCeyer/browser-detect.git
- install npm packages
$ cd browser-detect
$ npm install
- build sources
$ npm run build
test
$ npm run test