From 7723e86047a0bcced5a368392e78fe76fc12d69f Mon Sep 17 00:00:00 2001 From: Rhys Arkins <rhys@keylocation.sg> Date: Sat, 7 Jan 2017 22:00:32 +0100 Subject: [PATCH] Refactor promise chain --- src/index.js | 7 +++---- src/npm.js | 49 ++++++++++++++++++++++++------------------------- 2 files changed, 27 insertions(+), 29 deletions(-) diff --git a/src/index.js b/src/index.js index ebdb0e694d..e2dfe0f650 100644 --- a/src/index.js +++ b/src/index.js @@ -31,10 +31,9 @@ let basePackageJson; github.init(token, repoName, config.baseBranch, config.verbose).then(() => { // Get the base package.json return github.getFileContents(packageFile); -}).then((packageContents) => { - // Get the list of possible upgrades - return npm.getAllDependencyUpgrades(packageContents); -}).then((upgrades) => { +}) +.then(npm.getAllDependencyUpgrades) +.then((upgrades) => { if (config.verbose) { console.log('All upgrades: ' + JSON.stringify(upgrades)); } diff --git a/src/npm.js b/src/npm.js index c54276b4a0..10f24c9765 100644 --- a/src/npm.js +++ b/src/npm.js @@ -22,35 +22,10 @@ module.exports = { }); return allDependencies; }, - - getDependencyUpgrades: function(depName, currentVersion) { - return getDependency(depName) - .then(res => { - let allUpgrades = {}; - if (!res.body['versions']) { - console.log(depName + ' versions is null'); - } - Object.keys(res.body['versions']).forEach(function(version) { - if (stable.is(currentVersion) && !stable.is(version)) { - // Ignore unstable versions, unless the current version is unstable - return; - } - if (semver.gt(version, currentVersion)) { - // Group by major versions - var thisMajor = semver.major(version); - if (!allUpgrades[thisMajor] || semver.gt(version, allUpgrades[thisMajor])) { - allUpgrades[thisMajor] = version; - } - } - }); - return allUpgrades; - }); - }, getAllDependencyUpgrades: function(packageContents) { const allDependencyChecks = []; const allDependencyUpgrades = []; const dependencyTypes = ['dependencies', 'devDependencies']; - const getDependencyUpgrades = this.getDependencyUpgrades; dependencyTypes.forEach(function(depType) { if (!packageContents[depType]) { return; @@ -90,3 +65,27 @@ function getDependency(depName) { // supports scoped packages, e.g. @user/package return got(`https://registry.npmjs.org/${depName.replace('/', '%2F')}`, { json: true }); } + +function getDependencyUpgrades(depName, currentVersion) { + return getDependency(depName) + .then(res => { + let allUpgrades = {}; + if (!res.body['versions']) { + console.log(depName + ' versions is null'); + } + Object.keys(res.body['versions']).forEach(function(version) { + if (stable.is(currentVersion) && !stable.is(version)) { + // Ignore unstable versions, unless the current version is unstable + return; + } + if (semver.gt(version, currentVersion)) { + // Group by major versions + var thisMajor = semver.major(version); + if (!allUpgrades[thisMajor] || semver.gt(version, allUpgrades[thisMajor])) { + allUpgrades[thisMajor] = version; + } + } + }); + return allUpgrades; + }); +} -- GitLab