'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]]; };