'use strict' 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 }, {})