detector-js
v1.2.2
Description
DetectorJS, zero-dependency platform/environment detector written in ES6
Please feel free to ask for modifications, fixes or do a PR to improve Detector behavior or add detection rules
Author
Black Mirror
Badges
Documentation
Check out the Latest Documentation here
Installation
This is a Node.js module available through the npm registry.
It can be installed using either npm
or yarn
package managers.
npm i detector-js
yarn add detector-js
Usage
import Detector from 'detector-js';
const detector = new Detector('Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0.3 Safari/605.1.15');
console.log(detector);
// {
// engine:{
// name:'WebKit',
// version:'605.1.15'
// },
// browser:{
// name:'Safari',
// version:'12.0.3'
// },
// os:{
// name:'macOS',
// version:'10.14.3',
// versionName:'Mojave'
// },
// cpu:{
// platform:'MacIntel',
// cores:1,
// architecture:'x64',
// vendor:'intel'
// },
// gpu:{
// webGLVendor:'WebKit',
// webGLRenderer:'WebKit WebGL',
// vendor:'Intel Inc.',
// model:'Intel Iris',
// renderer:'Intel Iris OpenGL Engine'
// },
// platform:'desktop',
// feature: {
// pointerEnabled:false,
// pixelRatio:1,
// pointerLock:true,
// quirksMode:false,
// css3D:true,
// cssTransform:true,
// cssTransition:true,
// deviceMotion:false,
// deviceOrientation:false,
// contextMenu:false,
// classList:false,
// placeholder:true,
// viewportUnit:true,
// remUnit:true,
// canvas:true,
// svg:true,
// webGL:true,
// webVR:false,
// touch:false,
// forceTouch:true,
// srcset:true,
// sizes:true,
// pictureElement:true,
// dialogElement:false,
// addEventListener:true,
// asyncScript:true,
// battery:false,
// cors:true,
// deferScript:true,
// file:true,
// fileSystem:false,
// fullscreen:true,
// fullscreenKeyboard:true,
// geolocation:true,
// historyAPI:true,
// littleEndian:false,
// localStorage:true,
// matchMedia:true,
// querySelector:true,
// querySelectorAll:true,
// serviceWorker:true,
// typedArray:true,
// userMedia:false,
// vibration:false,
// worker:true,
// audio:{
// supported:true,
// context:true,
// formats:{
// mp3:true,
// webm:false,
// ogg:false,
// opus:false,
// wav:true,
// m4a:true
// }
// },
// video:{
// supported:true,
// formats:{
// mp4:true,
// ogv:false,
// webm:false
// }
// }
// }
// }
Todo
- refine browsers regexes
- refine documentation
- implement modular custom build feature
- decide to implement or not device infos detection
Dependencies
None
Dev Dependencies
- @babel/core: Babel compiler core.
- @babel/preset-env: A Babel preset for each environment.
- docdash: A clean, responsive documentation template theme for JSDoc 3 inspired by lodash and minami
- eslint: An AST-based pattern checker for JavaScript.
- eslint-config-airbnb: Airbnb's ESLint config, following our styleguide
- eslint-plugin-import: Import with sanity.
- eslint-plugin-jsx-a11y: Static AST checker for accessibility rules on JSX elements.
- eslint-plugin-react: React specific linting rules for ESLint
- ink-docstrap: DetectorJS, zero-dependency platform/environment detector written in ES6
- install: Minimal JavaScript module loader
- jsdoc: An API documentation generator for JavaScript.
- jshint: Static analysis tool for JavaScript
- rollup: Next-generation ES module bundler
- rollup-plugin-babel: Seamless integration between Rollup and Babel.
- rollup-plugin-eslint: Verify entry point and all imported files with ESLint
- rollup-plugin-filesize: A rollup plugin to show filesize in the cli
- rollup-plugin-json: DetectorJS, zero-dependency platform/environment detector written in ES6
- rollup-plugin-replace: DetectorJS, zero-dependency platform/environment detector written in ES6
- rollup-plugin-uglify: Rollup plugin to minify generated bundle
Tests
npm install
npm test
License
MIT