Spaces:
Running
Running
const browsers = require('./browsers').browsers | |
const versions = require('./browserVersions').browserVersions | |
const agentsData = require('../../data/agents') | |
function unpackBrowserVersions(versionsData) { | |
return Object.keys(versionsData).reduce((usage, version) => { | |
usage[versions[version]] = versionsData[version] | |
return usage | |
}, {}) | |
} | |
module.exports.agents = Object.keys(agentsData).reduce((map, key) => { | |
let versionsData = agentsData[key] | |
map[browsers[key]] = Object.keys(versionsData).reduce((data, entry) => { | |
if (entry === 'A') { | |
data.usage_global = unpackBrowserVersions(versionsData[entry]) | |
} else if (entry === 'C') { | |
data.versions = versionsData[entry].reduce((list, version) => { | |
if (version === '') { | |
list.push(null) | |
} else { | |
list.push(versions[version]) | |
} | |
return list | |
}, []) | |
} else if (entry === 'D') { | |
data.prefix_exceptions = unpackBrowserVersions(versionsData[entry]) | |
} else if (entry === 'E') { | |
data.browser = versionsData[entry] | |
} else if (entry === 'F') { | |
data.release_date = Object.keys(versionsData[entry]).reduce( | |
(map2, key2) => { | |
map2[versions[key2]] = versionsData[entry][key2] | |
return map2 | |
}, | |
{} | |
) | |
} else { | |
// entry is B | |
data.prefix = versionsData[entry] | |
} | |
return data | |
}, {}) | |
return map | |
}, {}) | |