detector-js
v2.0.11
Description
DetectorJS, zero-dependency platform/environment detector written in TypeScript
Please feel free to ask for modifications, fixes or do a PR to improve Detector behaviors or add detection rules
Author
Emiliano 'Pixu' Pisu <pisuemiliano.1980@gmail.com>
Badges
Documentation
Check out the Latest Documentation here
Installation
This is a JS/TS 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();
// It's possible to specify a custom userAgent if needed
// 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
- @detector-js/core: DetectorJS Core Module
- @detector-js/feature: DetectorJS Feature Module
- @detector-js/hardware: DetectorJS Hardware Module
- @detector-js/software: DetectorJS Software Module
- @detector-js/detector: DetectorJS Detector Module
Dev Dependencies
- @parcel/packager-ts: DetectorJS, zero-dependency platform/environment detector written in TypeScript
- @parcel/transformer-typescript-types: DetectorJS, zero-dependency platform/environment detector written in TypeScript
- @types/node: TypeScript definitions for Node.js
- lerna: Lerna is a fast, modern build system for managing and publishing multiple JavaScript/TypeScript packages from the same repository
- parcel: Blazing fast, zero configuration web application bundler
- pkg-2-readme: Generate a README.md from package.json contents
- standard-version: replacement for
npm version
with automatic CHANGELOG generation - typedoc: Create api documentation for TypeScript projects.
- typescript: TypeScript is a language for application scale JavaScript development
License
MIT