agents.js
1 'use strict' 2 3 const browsers = require('./browsers').browsers 4 const versions = require('./browserVersions').browserVersions 5 const agentsData = require('../../data/agents') 6 7 function unpackBrowserVersions(versionsData) { 8 return Object.keys(versionsData).reduce((usage, version) => { 9 usage[versions[version]] = versionsData[version] 10 return usage 11 }, {}) 12 } 13 14 module.exports.agents = Object.keys(agentsData).reduce((map, key) => { 15 let versionsData = agentsData[key] 16 map[browsers[key]] = Object.keys(versionsData).reduce((data, entry) => { 17 if (entry === 'A') { 18 data.usage_global = unpackBrowserVersions(versionsData[entry]) 19 } else if (entry === 'C') { 20 data.versions = versionsData[entry].reduce((list, version) => { 21 if (version === '') { 22 list.push(null) 23 } else { 24 list.push(versions[version]) 25 } 26 return list 27 }, []) 28 } else if (entry === 'D') { 29 data.prefix_exceptions = unpackBrowserVersions(versionsData[entry]) 30 } else if (entry === 'E') { 31 data.browser = versionsData[entry] 32 } else if (entry === 'F') { 33 data.release_date = Object.keys(versionsData[entry]).reduce( 34 (map2, key2) => { 35 map2[versions[key2]] = versionsData[entry][key2] 36 return map2 37 }, 38 {} 39 ) 40 } else { 41 // entry is B 42 data.prefix = versionsData[entry] 43 } 44 return data 45 }, {}) 46 return map 47 }, {})