From 6b12fc4ea433e9c3a750c1705a4706c3effd2fa9 Mon Sep 17 00:00:00 2001 From: Rhys Arkins <rhys@arkins.net> Date: Sat, 8 Dec 2018 16:46:06 +0100 Subject: [PATCH] refactor(versioning): use get function --- lib/datasource/github.js | 2 +- lib/util/package-rules.js | 2 +- lib/versioning/index.js | 9 +++++++-- lib/workers/pr/changelog/index.js | 2 +- lib/workers/pr/changelog/source-github.js | 4 ++-- lib/workers/pr/pr-body.js | 2 +- lib/workers/repository/process/lookup/filter.js | 2 +- lib/workers/repository/process/lookup/index.js | 12 +++++++----- lib/workers/repository/process/lookup/rollback.js | 9 ++++++--- test/versioning/index.spec.js | 10 +++++----- 10 files changed, 32 insertions(+), 22 deletions(-) diff --git a/lib/datasource/github.js b/lib/datasource/github.js index fc4c556659..7c52535800 100644 --- a/lib/datasource/github.js +++ b/lib/datasource/github.js @@ -128,7 +128,7 @@ async function getPkgReleases(purl, config) { return null; } // Filter by semver if no versionScheme provided - const { isVersion, sortVersions } = versioning(versionScheme); + const { isVersion, sortVersions } = versioning.get(versionScheme); // Return a sorted list of valid Versions versions = versions.filter(isVersion).sort(sortVersions); const dependency = { diff --git a/lib/util/package-rules.js b/lib/util/package-rules.js index 7fbd6a2394..b9b340ce3f 100644 --- a/lib/util/package-rules.js +++ b/lib/util/package-rules.js @@ -112,7 +112,7 @@ function applyPackageRules(inputConfig) { positiveMatch = positiveMatch || !isMatch; } if (matchCurrentVersion) { - const { matches, isVersion } = versioning(versionScheme); + const { matches, isVersion } = versioning.get(versionScheme); const compareVersion = isVersion(currentValue) ? currentValue // it's a version so we can match against it : fromVersion; // need to match against this fromVersion, if available diff --git a/lib/versioning/index.js b/lib/versioning/index.js index 3ef4836e05..8721b5aedd 100644 --- a/lib/versioning/index.js +++ b/lib/versioning/index.js @@ -14,7 +14,12 @@ const schemes = { pep440, }; -module.exports = function getVersionScheme(versionScheme) { +module.exports = { + get, + schemes, +}; + +function get(versionScheme) { if (!versionScheme) { logger.debug('Missing versionScheme'); return semver; @@ -25,4 +30,4 @@ module.exports = function getVersionScheme(versionScheme) { return semver; } return scheme; -}; +} diff --git a/lib/workers/pr/changelog/index.js b/lib/workers/pr/changelog/index.js index 2760424266..bd2f537db1 100644 --- a/lib/workers/pr/changelog/index.js +++ b/lib/workers/pr/changelog/index.js @@ -14,7 +14,7 @@ async function getChangeLogJSON(args) { // releases is too noisy in the logs const { releases, ...param } = args; logger.debug({ args: param }, `getChangeLogJSON(args)`); - const { equals } = versioning(versionScheme); + const { equals } = versioning.get(versionScheme); if (!fromVersion || equals(fromVersion, toVersion)) { return null; } diff --git a/lib/workers/pr/changelog/source-github.js b/lib/workers/pr/changelog/source-github.js index b59964ed48..c3369b154e 100644 --- a/lib/workers/pr/changelog/source-github.js +++ b/lib/workers/pr/changelog/source-github.js @@ -9,7 +9,7 @@ module.exports = { }; async function getTags(endpoint, versionScheme, repository) { - const { isVersion } = versioning(versionScheme); + const { isVersion } = versioning.get(versionScheme); let url = endpoint ? endpoint.replace(/\/?$/, '/') : 'https://api.github.com/'; @@ -49,7 +49,7 @@ async function getChangeLogJSON({ logger.debug('No release notes for @types'); return null; } - const { isVersion, equals, isGreaterThan, sortVersions } = versioning( + const { isVersion, equals, isGreaterThan, sortVersions } = versioning.get( versionScheme ); const { protocol, host, pathname } = URL.parse(repositoryUrl); diff --git a/lib/workers/pr/pr-body.js b/lib/workers/pr/pr-body.js index e51eb010ae..723fcd08cd 100644 --- a/lib/workers/pr/pr-body.js +++ b/lib/workers/pr/pr-body.js @@ -60,7 +60,7 @@ async function getPrBody(config) { // istanbul ignore if if (updateType === 'minor') { try { - const { getMinor } = versioning(versionScheme); + const { getMinor } = versioning.get(versionScheme); if (getMinor(fromVersion) === getMinor(toVersion)) { upgrade.updateType = 'patch'; } diff --git a/lib/workers/repository/process/lookup/filter.js b/lib/workers/repository/process/lookup/filter.js index b28a2e4687..2cb6eca5aa 100644 --- a/lib/workers/repository/process/lookup/filter.js +++ b/lib/workers/repository/process/lookup/filter.js @@ -26,7 +26,7 @@ function filterVersions( isStable, isValid, matches, - } = versioning(versionScheme); + } = versioning.get(versionScheme); if (!fromVersion) { return []; } diff --git a/lib/workers/repository/process/lookup/index.js b/lib/workers/repository/process/lookup/index.js index dcc7357a27..26e20f1162 100644 --- a/lib/workers/repository/process/lookup/index.js +++ b/lib/workers/repository/process/lookup/index.js @@ -26,7 +26,7 @@ async function lookupUpdates(config) { isVersion, matches, getNewValue, - } = versioning(config.versionScheme); + } = versioning.get(config.versionScheme); const res = { updates: [], warnings: [] }; if (isValid(currentValue)) { const dependency = await getPkgReleases(config.purl, config); @@ -255,7 +255,7 @@ async function lookupUpdates(config) { function getType(config, fromVersion, toVersion) { const { versionScheme, rangeStrategy, currentValue } = config; - const { getMajor, getMinor, matches } = versioning(versionScheme); + const { getMajor, getMinor, matches } = versioning.get(versionScheme); if (rangeStrategy === 'bump' && matches(toVersion, currentValue)) { return 'bump'; } @@ -292,9 +292,11 @@ function getBucket(config, update) { function getFromVersion(config, rangeStrategy, allVersions) { const { currentValue, lockedVersion, versionScheme } = config; - const { isVersion, maxSatisfyingVersion, minSatisfyingVersion } = versioning( - versionScheme - ); + const { + isVersion, + maxSatisfyingVersion, + minSatisfyingVersion, + } = versioning.get(versionScheme); if (isVersion(currentValue)) { return currentValue; } diff --git a/lib/workers/repository/process/lookup/rollback.js b/lib/workers/repository/process/lookup/rollback.js index 713b245399..8755350b2c 100644 --- a/lib/workers/repository/process/lookup/rollback.js +++ b/lib/workers/repository/process/lookup/rollback.js @@ -6,9 +6,12 @@ module.exports = { function getRollbackUpdate(config, versions) { const { packageFile, versionScheme, depName, currentValue } = config; - const { getMajor, isLessThanRange, getNewValue, sortVersions } = versioning( - versionScheme - ); + const { + getMajor, + isLessThanRange, + getNewValue, + sortVersions, + } = versioning.get(versionScheme); // istanbul ignore if if (!isLessThanRange) { logger.info( diff --git a/test/versioning/index.spec.js b/test/versioning/index.spec.js index 9e7fb786b7..0f4e8e885e 100644 --- a/test/versioning/index.spec.js +++ b/test/versioning/index.spec.js @@ -1,14 +1,14 @@ const versioning = require('../../lib/versioning'); -describe('versioning(versionScheme)', () => { +describe('versioning.get(versionScheme)', () => { it('should fallback to semver', () => { - expect(versioning(undefined)).toBe(versioning('semver')); - expect(versioning('unknown')).toBe(versioning('semver')); + expect(versioning.get(undefined)).toBe(versioning.get('semver')); + expect(versioning.get('unknown')).toBe(versioning.get('semver')); }); it('should return the same interface', () => { - const semverApi = Object.keys(versioning('semver')); - const pep440Api = Object.keys(versioning('pep440')).concat( + const semverApi = Object.keys(versioning.get('semver')); + const pep440Api = Object.keys(versioning.get('pep440')).concat( 'isLessThanRange' ); expect(pep440Api.sort()).toEqual(semverApi.sort()); -- GitLab