summaryrefslogtreecommitdiff
path: root/shared/utils/node_modules/@amp/runtime-detect/dist/rules.js
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 };