You cannot 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
		
	
	
	
		
			JavaScript
		
	
		
		
			
		
	
	
			48 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
| 
											9 months 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 | ||
|  | }, {}) |