1
0
mirror of https://github.com/lancedikson/bowser synced 2024-09-28 22:30:44 +00:00
lancedikson_bowser/src/parser-engines.js

109 lines
1.8 KiB
JavaScript
Raw Normal View History

2018-06-27 20:09:45 +00:00
import { getFirstMatch } from './utils';
2017-06-09 20:04:43 +00:00
/*
* More specific goes first
*/
export default [
/* EdgeHTML */
{
test(parser) {
return parser.getBrowserName(true) === 'microsoft edge';
},
describe(ua) {
const version = getFirstMatch(/edge\/(\d+(\.?_?\d+)+)/i, ua);
return {
name: 'EdgeHTML',
2017-12-20 21:29:06 +00:00
version,
2017-06-09 20:04:43 +00:00
};
2017-12-20 21:29:06 +00:00
},
2017-06-09 20:04:43 +00:00
},
/* Trident */
{
test: [/trident/i],
describe(ua) {
const engine = {
2017-12-20 21:29:06 +00:00
name: 'Trident',
2017-06-09 20:04:43 +00:00
};
const version = getFirstMatch(/trident\/(\d+(\.?_?\d+)+)/i, ua);
if (version) {
engine.version = version;
}
return engine;
2017-12-20 21:29:06 +00:00
},
2017-06-09 20:04:43 +00:00
},
/* Presto */
{
test(parser) {
return parser.test(/presto/i);
},
describe(ua) {
const engine = {
2017-12-20 21:29:06 +00:00
name: 'Presto',
2017-06-09 20:04:43 +00:00
};
const version = getFirstMatch(/presto\/(\d+(\.?_?\d+)+)/i, ua);
if (version) {
engine.version = version;
}
return engine;
2017-12-20 21:29:06 +00:00
},
2017-06-09 20:04:43 +00:00
},
/* Gecko */
{
test(parser) {
const isGecko = parser.test(/gecko/i);
const likeGecko = parser.test(/like gecko/i);
return isGecko && !likeGecko;
},
describe(ua) {
const engine = {
2017-12-20 21:29:06 +00:00
name: 'Gecko',
2017-06-09 20:04:43 +00:00
};
const version = getFirstMatch(/gecko\/(\d+(\.?_?\d+)+)/i, ua);
if (version) {
engine.version = version;
}
return engine;
2017-12-20 21:29:06 +00:00
},
2017-06-09 20:04:43 +00:00
},
/* Blink */
{
test: [/(apple)?webkit\/537\.36/i],
describe() {
return {
2017-12-20 21:29:06 +00:00
name: 'Blink',
2017-06-09 20:04:43 +00:00
};
2017-12-20 21:29:06 +00:00
},
2017-06-09 20:04:43 +00:00
},
/* WebKit */
{
test: [/(apple)?webkit/i],
describe(ua) {
const engine = {
2017-12-20 21:29:06 +00:00
name: 'WebKit',
2017-06-09 20:04:43 +00:00
};
const version = getFirstMatch(/webkit\/(\d+(\.?_?\d+)+)/i, ua);
if (version) {
engine.version = version;
}
return engine;
2017-12-20 21:29:06 +00:00
},
},
2017-06-09 20:04:43 +00:00
];