From c7163298a635546fd053fff4e0ada3421f9f848d Mon Sep 17 00:00:00 2001 From: Javier Castro Date: Tue, 20 Nov 2018 11:12:42 -0300 Subject: [PATCH] Require Node.js 6 and upgrade dependencies (#5) --- .travis.yml | 5 ++--- index.js | 26 +++++++++++++++++--------- package.json | 4 ++-- test.js | 19 ++++++++++++++++++- 4 files changed, 39 insertions(+), 15 deletions(-) diff --git a/.travis.yml b/.travis.yml index 2c6e9b0..dbe199e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,6 @@ sudo: false language: node_js node_js: + - '10' + - '8' - '6' - - '4' - - '0.12' - - '0.10' diff --git a/index.js b/index.js index eb669bb..15da313 100644 --- a/index.js +++ b/index.js @@ -1,7 +1,7 @@ 'use strict'; -var os = require('os'); -var macosRelease = require('macos-release'); -var winRelease = require('win-release'); +const os = require('os'); +const macosRelease = require('macos-release'); +const winRelease = require('windows-release'); module.exports = function (platform, release) { if (!platform && release) { @@ -9,23 +9,31 @@ module.exports = function (platform, release) { } platform = platform || os.platform(); - release = release || os.release(); - var id; + let id; if (platform === 'darwin') { - var prefix = Number(release.split('.')[0]) > 15 ? 'macOS' : 'OS X'; - id = macosRelease(release).name; + if (!release && os.platform() === 'darwin') { + release = os.release(); + } + const prefix = release ? (Number(release.split('.')[0]) > 15 ? 'macOS' : 'OS X') : 'macOS'; + id = release ? macosRelease(release).name : ''; return prefix + (id ? ' ' + id : ''); } if (platform === 'linux') { - id = release.replace(/^(\d+\.\d+).*/, '$1'); + if (!release && os.platform() === 'linux') { + release = os.release(); + } + id = release ? release.replace(/^(\d+\.\d+).*/, '$1') : ''; return 'Linux' + (id ? ' ' + id : ''); } if (platform === 'win32') { - id = winRelease(release); + if (!release && os.platform() === 'win32') { + release = os.release(); + } + id = release ? winRelease(release) : ''; return 'Windows' + (id ? ' ' + id : ''); } diff --git a/package.json b/package.json index cbbfd6e..9478f7d 100644 --- a/package.json +++ b/package.json @@ -33,8 +33,8 @@ "linux" ], "dependencies": { - "macos-release": "^1.0.0", - "win-release": "^1.0.0" + "macos-release": "^2.0.0", + "windows-release": "^3.1.0" }, "devDependencies": { "ava": "*", diff --git a/test.js b/test.js index 46e364e..295492f 100644 --- a/test.js +++ b/test.js @@ -1,12 +1,29 @@ +import os from 'os'; import test from 'ava'; -import m from './'; +import m from '.'; test(t => { t.true(m().length > 0); + t.is(m('darwin', '18.0.0'), 'macOS Mojave'); + t.is(m('darwin', '17.0.0'), 'macOS High Sierra'); t.is(m('darwin', '16.0.0'), 'macOS Sierra'); t.is(m('darwin', '14.0.0'), 'OS X Yosemite'); t.is(m('darwin', '99.0.0'), 'macOS'); t.is(m('linux', '3.13.0-24-generic'), 'Linux 3.13'); t.is(m('win32', '5.1.2600'), 'Windows XP'); + t.is(m('win32', '4.90'), 'Windows ME'); + t.is(m('win32', '6.2'), 'Windows 8'); + t.is(m('win32', '10.0'), 'Windows 10'); + + os.platform = () => 'darwin'; + t.is(m('win32'), 'Windows'); + t.is(m('linux'), 'Linux'); + + os.platform = () => 'linux'; + t.is(m('darwin'), 'macOS'); t.is(m('win32'), 'Windows'); + + os.platform = () => 'win32'; + t.is(m('darwin'), 'macOS'); + t.is(m('linux'), 'Linux'); });