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.
		
		
		
		
		
			
		
			
				
					36 lines
				
				765 B
			
		
		
			
		
	
	
					36 lines
				
				765 B
			| 
								 
											3 years ago
										 
									 | 
							
								'use strict';
							 | 
						||
| 
								 | 
							
								var os = require('os');
							 | 
						||
| 
								 | 
							
								var semver = require('semver');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var nameMap = {
							 | 
						||
| 
								 | 
							
									'10.0': '10',
							 | 
						||
| 
								 | 
							
									'6.3': '8.1',
							 | 
						||
| 
								 | 
							
									'6.2': '8',
							 | 
						||
| 
								 | 
							
									'6.1': '7',
							 | 
						||
| 
								 | 
							
									'6.0': 'Vista',
							 | 
						||
| 
								 | 
							
									'5.1': 'XP',
							 | 
						||
| 
								 | 
							
									'5.0': '2000',
							 | 
						||
| 
								 | 
							
									'4.9': 'ME',
							 | 
						||
| 
								 | 
							
									'4.1': '98',
							 | 
						||
| 
								 | 
							
									'4.0': '95'
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								module.exports = function (release) {
							 | 
						||
| 
								 | 
							
									var verRe = /\d+\.\d+/;
							 | 
						||
| 
								 | 
							
									var version = verRe.exec(release || os.release());
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									// workaround for Windows 10 on node < 3.1.0
							 | 
						||
| 
								 | 
							
									if (!release && process.platform === 'win32' &&
							 | 
						||
| 
								 | 
							
										semver.satisfies(process.version, '>=0.12.0 <3.1.0')) {
							 | 
						||
| 
								 | 
							
										try {
							 | 
						||
| 
								 | 
							
											version = verRe.exec(String(require('child_process').execSync('ver.exe', {timeout: 2000})));
							 | 
						||
| 
								 | 
							
										} catch (err) {}
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									if (release && !version) {
							 | 
						||
| 
								 | 
							
										throw new Error('`release` argument doesn\'t match `n.n`');
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									return nameMap[(version || [])[0]];
							 | 
						||
| 
								 | 
							
								};
							 |