You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
47 lines
1.4 KiB
47 lines
1.4 KiB
'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 |
|
}, {})
|
|
|