.gitignore added
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / caniuse-lite / dist / unpacker / agents.js
1 'use strict';
2
3 Object.defineProperty(exports, "__esModule", {
4     value: true
5 });
6 exports.agents = undefined;
7
8 var _browsers = require('./browsers');
9
10 var _browserVersions = require('./browserVersions');
11
12 var agentsData = require('../../data/agents');
13
14 function unpackBrowserVersions(versionsData) {
15     return Object.keys(versionsData).reduce(function (usage, version) {
16         usage[_browserVersions.browserVersions[version]] = versionsData[version];
17         return usage;
18     }, {});
19 }
20
21 var agents = exports.agents = Object.keys(agentsData).reduce(function (map, key) {
22     var versionsData = agentsData[key];
23     map[_browsers.browsers[key]] = Object.keys(versionsData).reduce(function (data, entry) {
24         if (entry === 'A') {
25             data.usage_global = unpackBrowserVersions(versionsData[entry]);
26         } else if (entry === 'C') {
27             data.versions = versionsData[entry].reduce(function (list, version) {
28                 if (version === '') {
29                     list.push(null);
30                 } else {
31                     list.push(_browserVersions.browserVersions[version]);
32                 }
33                 return list;
34             }, []);
35         } else if (entry === 'D') {
36             data.prefix_exceptions = unpackBrowserVersions(versionsData[entry]);
37         } else if (entry === 'E') {
38             data.browser = versionsData[entry];
39         } else if (entry === 'F') {
40             data.release_date = Object.keys(versionsData[entry]).reduce(function (map, key) {
41                 map[_browserVersions.browserVersions[key]] = versionsData[entry][key];
42                 return map;
43             }, {});
44         } else {
45             // entry is B
46             data.prefix = versionsData[entry];
47         }
48         return data;
49     }, {});
50     return map;
51 }, {});