15815213711
2024-08-26 67b8b6731811983447e053d4396b3708c14dfe3c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
'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]];
};