1
0
mirror of https://github.com/lancedikson/bowser synced 2024-10-27 20:34:22 +00:00

Merge branch 'release/2.0.0-alpha.2'

This commit is contained in:
Denis Demchenko 2018-07-17 21:27:00 +03:00
commit 2ae6ce1820
11 changed files with 43 additions and 26 deletions

View File

@ -1 +0,0 @@
src/bowser.js

4
.gitignore vendored
View File

@ -1,8 +1,6 @@
node_modules/
.idea/
/bowser.js
/bowser.min.js
/lib/
.nyc_output
coverage
dist
compiled.js

View File

@ -1,5 +1,5 @@
make
src/useragents.js
Makefile
test
.nyc_output
coverage
**/.*
node_modules

1
.npmrc Normal file
View File

@ -0,0 +1 @@
registry=https://registry.npmjs.org

View File

@ -1,5 +1,11 @@
# Bowser Changelog
### 2.0.0-alpha.2 (July 17, 2018)
- [CHANGE] Make `src/bowser` main file instead of the bundled one
- [CHANGE] Move the bundled file to the root of the package to make it possible to `require('bowser/compiled')` (#231)
- [REMOVE] Remove `typings.d.ts` before stable release (#232)
- [FIX] Improve Nexus devices detection (#233)
### 2.0.0-alpha.1 (July 9, 2018)
- [ADD] `Bowser.getParser()`
- [ADD] `Bowser.parse`

View File

@ -22,7 +22,7 @@ The upcoming 2.0 version has drastically changed API. All available methods can
First of all, require the library:
```
```javascript
const bowser = require('bowser');
```
@ -30,7 +30,7 @@ const bowser = require('bowser');
Often we need to pick users' browser properties such as the name, the version, the rendering engine and so on. Here is an example how to make it with Bowser:
```
```javascript
const browser = bowser.getParser(window.navigator.userAgent);
console.log(`The current browser name is "${browser.getBrowserName()}"`);
@ -39,7 +39,7 @@ console.log(`The current browser name is "${browser.getBrowserName()}"`);
or
```
```javascript
const impression = new Impression();
const browser = bowser.getParser(window.navigator.userAgent);
@ -50,7 +50,7 @@ impression.brVer = browserInfo.version;
or
```
```javascript
const browser = bowser.getParser(window.navigator.userAgent);
impression.userTechData = browser.parse();
console.log(impression.userTechData);
@ -81,7 +81,7 @@ console.log(impression.userTechData);
You could want to filter some particular browsers to provide any special support for them or make any workarounds.
It could look like this:
```
```javascript
const browser = bowser.getParsers(window.navigator.userAgent);
const isValidBrowser = browser.satisfies({
// declare browsers per OS
@ -111,10 +111,11 @@ Thus, you can define OS or platform specific rules and they will have more prior
More of API and possibilities you will find in the `docs` folder.
# Advanced Usage
By default, `require('bowser')` requires the pre-compiled file, which can
include useless for you polyfills. In case you don't need that, you can choose
using source file requiring bowser like that: `require('bowser/src/bowser`);
Then you get ES2015 file, which is not precompiled and can be easier to debug.
By default, `require('bowser')` requires the *ES6 version of files*, which
**don't** include any polyfills. In case if you don't use your own `babel-polyfill`
you may need to have pre-built bundle with all needed polyfills.
It's possible requiring bowser like that: `require('bowser/compiled');`
As result you get a ES5 file with `babel-polyfill` bundled in it.
# Contributing
If you'd like to contribute a change to bowser, modify the files in `src/`, then run the following (you'll need node + npm installed):

View File

@ -1,6 +1,6 @@
{
"name": "bowser",
"version": "2.0.0-alpha.1",
"version": "2.0.0-alpha.2",
"description": "Lightweight browser detector",
"keywords": [
"browser",
@ -20,8 +20,7 @@
"url": "http://twitter.com/lancedikson"
}
],
"main": "./dist/bowser.compiled.js",
"typings": "./typings.d.ts",
"main": "src/bowser.js",
"repository": {
"type": "git",
"url": "git+https://github.com/lancedikson/bowser.git"

View File

@ -14,7 +14,7 @@ const TYPES_LABELS = {
export default [
/* Nexus Tablet */
{
test: [/nexus\s*[0-9]+/i],
test: [/nexus\s*(?:7|8|9|10).*/i],
describe() {
return {
type: TYPES_LABELS.tablet,
@ -87,7 +87,7 @@ export default [
/* Nexus Mobile */
{
test: [/nexus\s*[0-6]\s*/i, /galaxy nexus/i],
test: [/nexus\s*[0-6].*/i, /galaxy nexus/i],
describe() {
return {
type: TYPES_LABELS.mobile,

View File

@ -254,7 +254,21 @@
type: "tablet"
engine:
name: "Blink"
Amazon Silk:
-
ua: "Mozilla/5.0 (Linux; Android 7.0; Nexus 6P Build/NRD90T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.111 Mobile Safari/537.36"
spec:
browser:
name: "Chrome"
version: "63.0.3239.111"
os:
name: "Android"
version: "7.0"
platform:
type: "mobile"
vendor: "Nexus"
engine:
name: "Blink"
Amazon Silk:
-
ua: "Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; KFTT Build/IML74K) AppleWebKit/535.19 (KHTML, like Gecko) Silk/3.4 Mobile Safari/535.19 Silk-Accelerated=true"
spec:
@ -607,7 +621,7 @@
name: "Android"
version: "5.1.1"
platform:
type: "tablet"
type: "mobile"
vendor: "Nexus"
engine:
name: "Blink"

1
typings.d.ts vendored
View File

@ -1 +0,0 @@
// to be defined in stable version

View File

@ -9,10 +9,10 @@ module.exports = {
// and webpack starts bundling
output: {
// options related to how webpack emits results
path: path.resolve(__dirname, 'dist'), // string
path: path.resolve(__dirname, './'), // string
// the target directory for all output files
// must be an absolute path (use the Node.js path module)
filename: 'bowser.compiled.js', // string
filename: 'compiled.js', // string
// the filename template for entry chunks
library: 'bowser',
libraryTarget: 'umd', // universal module definition