blob: 5ffb91fd16071f8872eebb5795493418613fd582 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
function applyRules(rules, navigator, data) {
const { userAgent } = navigator !== null && navigator !== void 0 ? navigator : {};
if (typeof userAgent !== 'string' || userAgent.trim() === '') {
return data;
}
for (const rule of rules){
const patterns = rule.slice(0, -1);
const parser = rule[rule.length - 1];
let match = null;
for (const pattern of patterns){
match = userAgent.match(pattern);
if (match !== null) {
Object.assign(data, parser(match, navigator, data));
break;
}
}
if (match !== null) break;
}
return data;
}
export { applyRules };
|