-
-
Notifications
You must be signed in to change notification settings - Fork 487
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'release/2.1.0' into production
- Loading branch information
Showing
10 changed files
with
119 additions
and
62 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,7 +1,31 @@ | ||
# Contributing | ||
|
||
The project runs Git-flow, where the `master` branch is the development one and `production` is the production one. | ||
We're always open to pull requests or code reviews. Everyone can become a permanent contributor. Just ping @lancedikson in the issues or on Twitter ❤️ | ||
|
||
In a nutshell, if you're about to propose a new feature with adding some totally new functionality to `bowser`, it's better to branch from `master` and make a PR pointing back to `master` as well. | ||
If it's a small hotfix, fix a typo in the docs or you've added support for a new browser/OS/platform/etc, then it's better to branch from `production` and make a PR pointing back to `production`. | ||
Following these simple rules will help to maintain the repo a lot! Thanks ❤️ | ||
## Branches | ||
|
||
The project runs Git-flow, where the `master` branch is for development and `production` is for production. | ||
|
||
In a nutshell, if you are proposing a new feature that adds totally new functionality to `bowser`, it's better to branch from `master` and make a PR pointing back to `master` as well. | ||
|
||
If it's a small hot-fix, an improvement to the docs, or added support for a new browser/OS/platform/etc, then it's better to branch from `production` and make a PR pointing back to `production`. | ||
|
||
Following these simple rules will really help maintain the repo! Thanks ❤️ | ||
|
||
## Adding Tests | ||
|
||
See the list in `test/acceptance/useragentstrings.yml` with example user agents and their expected `bowser` object. | ||
|
||
Whenever you add support for new browsers or notice a bug / mismatch, please update the list and | ||
check if all tests are still passing. | ||
|
||
## Testing | ||
|
||
If you'd like to contribute a change to `bowser`, modify the files in `src/`, and run the following (you'll need `node` + `npm` installed): | ||
|
||
``` sh | ||
$ npm install | ||
$ npm run build #build | ||
$ npm test #run tests | ||
$ npm run lint #check lint rules | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -13,19 +13,23 @@ A browser detector. Because sometimes, there is no other way, and not even good | |
|
||
The library is made to help to detect what browser your user has and gives you a convenient API to filter the users somehow depending on their browsers. | ||
|
||
_Please, note that this is an alpha version. Check out the [1.x](https://github.com/lancedikson/bowser/tree/v1.x) branch for a stable version._ | ||
|
||
**Changes of version 2.0** | ||
The upcoming 2.0 version has drastically changed API. All available methods can be found in the `docs` folder from now on and on a webpage soon. | ||
|
||
The version 2.0 has drastically changed API. All available methods can be found in the `docs` folder from now on and on a webpage soon. | ||
|
||
_For legacy code, check out the [1.x](https://github.com/lancedikson/bowser/tree/v1.x) branch and install it through `npm install [email protected]`._ | ||
|
||
|
||
# Use cases | ||
|
||
First of all, require the library. This is a UMD Module, so it will work for AMD, Typescript and CommonJS module systems. | ||
First of all, require the library. This is a UMD Module, so it will work for AMD, TypeScript, ES6, and CommonJS module systems. | ||
|
||
```javascript | ||
const Bowser = require("bowser"); // CommonJS | ||
|
||
import * as Bowser from "bowser" // Typescript | ||
import * as Bowser from "bowser"; // TypeScript | ||
|
||
import Bowser from "bowser"; // ES6 (and TypeScript with --esModuleInterop enabled) | ||
``` | ||
|
||
By default, the exported version is the *ES5 transpiled version*, which **do not** include any polyfills. | ||
|
@@ -41,7 +45,7 @@ You may need to use the source files, so they will be available in the package a | |
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 do it with Bowser: | ||
|
||
```javascript | ||
const browser = bowser.getParser(window.navigator.userAgent); | ||
const browser = Bowser.getParser(window.navigator.userAgent); | ||
|
||
console.log(`The current browser name is "${browser.getBrowserName()}"`); | ||
// The current browser name is "Internet Explorer" | ||
|
@@ -52,7 +56,7 @@ or | |
```javascript | ||
const impression = new Impression(); | ||
|
||
const browser = bowser.getParser(window.navigator.userAgent); | ||
const browser = Bowser.getParser(window.navigator.userAgent); | ||
const browserInfo = browser.getBrowser(); | ||
impression.brName = browserInfo.name; | ||
impression.brVer = browserInfo.version; | ||
|
@@ -61,7 +65,7 @@ impression.brVer = browserInfo.version; | |
or | ||
|
||
```javascript | ||
const browser = bowser.getParser(window.navigator.userAgent); | ||
const browser = Bowser.getParser(window.navigator.userAgent); | ||
impression.userTechData = browser.parse(); | ||
console.log(impression.userTechData); | ||
|
||
|
@@ -93,7 +97,7 @@ You could want to filter some particular browsers to provide any special support | |
It could look like this: | ||
|
||
```javascript | ||
const browser = bowser.getParser(window.navigator.userAgent); | ||
const browser = Bowser.getParser(window.navigator.userAgent); | ||
const isValidBrowser = browser.satisfies({ | ||
// declare browsers per OS | ||
windows: { | ||
|
@@ -128,25 +132,6 @@ 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. | ||
|
||
# Contributing | ||
|
||
We're always open to pull requests or code reviews. Everyone can become a permanent contributor. Just ping @lancedikson in the issues or on Twitter ❤️ | ||
|
||
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): | ||
|
||
``` sh | ||
$ npm install | ||
$ npm run build #build | ||
$ npm test #run tests | ||
$ npm run lint #check lint rules | ||
``` | ||
|
||
### Adding tests | ||
See the list in `test/acceptance/useragentstrings.yml` with example user agents and their expected bowser object. | ||
|
||
Whenever you add support for new browsers or notice a bug / mismatch, please update the list and | ||
check if all tests are still passing. | ||
|
||
### Similar Projects | ||
* [Kong](https://github.com/BigBadBleuCheese/Kong) - A C# port of Bowser. | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.