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