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.
		
		
		
		
		
			
		
			
				
					48 lines
				
				1.4 KiB
			
		
		
			
		
	
	
					48 lines
				
				1.4 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								'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
							 | 
						||
| 
								 | 
							
								}, {})
							 |