From e159d90516da3affce7a6a33fdea1dbe6b17912f Mon Sep 17 00:00:00 2001 From: Paul Melnikow Date: Tue, 5 Mar 2019 21:43:33 -0500 Subject: [PATCH] Reorganize a couple of the legacy helpers [npm node jenkinsplugin dynamic] (#3163) --- core/base-service/coalesce-badge.js | 2 +- core/base-service/to-array.js | 11 +++++++++++ {lib => core/legacy}/regular-update.js | 4 ++-- core/server/server.js | 2 +- doc/production-hosting.md | 2 +- lib/badge-data.js | 11 +---------- services/dynamic-common.js | 2 +- services/jenkins/jenkins-plugin-version.service.js | 2 +- services/licenses.js | 2 +- services/node/node-version-color.js | 2 +- services/npm/npm-license.service.js | 2 +- services/nuget/nuget-v3-service-family.js | 2 +- services/php-version.js | 2 +- services/route-builder.js | 2 +- 14 files changed, 25 insertions(+), 23 deletions(-) create mode 100644 core/base-service/to-array.js rename {lib => core/legacy}/regular-update.js (93%) diff --git a/core/base-service/coalesce-badge.js b/core/base-service/coalesce-badge.js index d90533e210..a77b8dcc21 100644 --- a/core/base-service/coalesce-badge.js +++ b/core/base-service/coalesce-badge.js @@ -4,9 +4,9 @@ const { decodeDataUrlFromQueryParam, prepareNamedLogo, } = require('../../lib/logos') -const { toArray } = require('../../lib/badge-data') const { svg2base64 } = require('../../lib/svg-helpers') const coalesce = require('./coalesce') +const toArray = require('./to-array') // Translate modern badge data to the legacy schema understood by the badge // maker. Allow the user to override the label, color, logo, etc. through the diff --git a/core/base-service/to-array.js b/core/base-service/to-array.js new file mode 100644 index 0000000000..e22a7227b3 --- /dev/null +++ b/core/base-service/to-array.js @@ -0,0 +1,11 @@ +'use strict' + +module.exports = function toArray(val) { + if (val === undefined) { + return [] + } else if (Object(val) instanceof Array) { + return val + } else { + return [val] + } +} diff --git a/lib/regular-update.js b/core/legacy/regular-update.js similarity index 93% rename from lib/regular-update.js rename to core/legacy/regular-update.js index 3957b5411e..e32e05c412 100644 --- a/lib/regular-update.js +++ b/core/legacy/regular-update.js @@ -1,6 +1,6 @@ 'use strict' -const { Inaccessible, InvalidResponse } = require('../core/base-service/errors') +const { Inaccessible, InvalidResponse } = require('../base-service/errors') // Map from URL to { timestamp: last fetch time, data: data }. let regularUpdateCache = Object.create(null) @@ -12,7 +12,7 @@ let regularUpdateCache = Object.create(null) // To use this from a service: // // const { promisify } = require('util') -// const { regularUpdate } = require('../../lib/regular-update') +// const { regularUpdate } = require('../../core/legacy/regular-update') // // function getThing() { // return promisify(regularUpdate)({ diff --git a/core/server/server.js b/core/server/server.js index 4186a761d4..8c79e958b8 100644 --- a/core/server/server.js +++ b/core/server/server.js @@ -16,7 +16,7 @@ const { handleRequest, clearRequestCache, } = require('../base-service/legacy-request-handler') -const { clearRegularUpdateCache } = require('../../lib/regular-update') +const { clearRegularUpdateCache } = require('../legacy/regular-update') const { staticBadgeUrl } = require('../badge-urls/make-badge-url') const analytics = require('./analytics') const log = require('./log') diff --git a/doc/production-hosting.md b/doc/production-hosting.md index c758f36c1b..65f3555f95 100644 --- a/doc/production-hosting.md +++ b/doc/production-hosting.md @@ -74,7 +74,7 @@ Shields has mercifully little persistent state: [github auth admin endpoint]: https://github.com/badges/shields/blob/master/services/github/auth/admin.js [request cache]: https://github.com/badges/shields/blob/master/core/base-service/legacy-request-handler.js#L29-L30 -[regular-update cache]: https://github.com/badges/shields/blob/master/lib/regular-update.js +[regular-update cache]: https://github.com/badges/shields/blob/master/core/legacy/regular-update.js [raster cache]: https://github.com/badges/shields/blob/master/gh-badges/lib/svg-to-img.js#L9-L10 [oauth transfer]: https://developer.github.com/apps/managing-oauth-apps/transferring-ownership-of-an-oauth-app/ diff --git a/lib/badge-data.js b/lib/badge-data.js index ad8366456f..8b02dbda32 100644 --- a/lib/badge-data.js +++ b/lib/badge-data.js @@ -1,18 +1,9 @@ 'use strict' const coalesce = require('../core/base-service/coalesce') +const toArray = require('../core/base-service/to-array') const { makeLogo } = require('./logos') -function toArray(val) { - if (val === undefined) { - return [] - } else if (Object(val) instanceof Array) { - return val - } else { - return [val] - } -} - function makeLabel(defaultLabel, overrides) { return `${ overrides.label === undefined diff --git a/services/dynamic-common.js b/services/dynamic-common.js index 5457242a63..060b075982 100644 --- a/services/dynamic-common.js +++ b/services/dynamic-common.js @@ -1,8 +1,8 @@ 'use strict' const Joi = require('joi') +const toArray = require('../core/base-service/to-array') const validate = require('../core/base-service/validate') -const { toArray } = require('../lib/badge-data') const { InvalidResponse } = require('.') const errorMessages = { diff --git a/services/jenkins/jenkins-plugin-version.service.js b/services/jenkins/jenkins-plugin-version.service.js index facea3e515..7a55ea56f8 100644 --- a/services/jenkins/jenkins-plugin-version.service.js +++ b/services/jenkins/jenkins-plugin-version.service.js @@ -2,7 +2,7 @@ const LegacyService = require('../legacy-service') const { makeBadgeData: getBadgeData } = require('../../lib/badge-data') -const { regularUpdate } = require('../../lib/regular-update') +const { regularUpdate } = require('../../core/legacy/regular-update') const { addv: versionText } = require('../text-formatters') const { version: versionColor } = require('../color-formatters') diff --git a/services/licenses.js b/services/licenses.js index 05e8c457ea..ca5fb80ebb 100644 --- a/services/licenses.js +++ b/services/licenses.js @@ -1,6 +1,6 @@ 'use strict' -const { toArray } = require('../lib/badge-data') +const toArray = require('../core/base-service/to-array') const licenseTypes = { // permissive licenses - not public domain and not copyleft diff --git a/services/node/node-version-color.js b/services/node/node-version-color.js index 5c1a5abf73..3e0c5b128e 100644 --- a/services/node/node-version-color.js +++ b/services/node/node-version-color.js @@ -2,7 +2,7 @@ const { promisify } = require('util') const semver = require('semver') -const { regularUpdate } = require('../../lib/regular-update') +const { regularUpdate } = require('../../core/legacy/regular-update') function getLatestVersion() { return promisify(regularUpdate)({ diff --git a/services/npm/npm-license.service.js b/services/npm/npm-license.service.js index b22250f252..3c19609c1e 100644 --- a/services/npm/npm-license.service.js +++ b/services/npm/npm-license.service.js @@ -1,7 +1,7 @@ 'use strict' const { renderLicenseBadge } = require('../licenses') -const { toArray } = require('../../lib/badge-data') +const toArray = require('../../core/base-service/to-array') const NpmBase = require('./npm-base') module.exports = class NpmLicense extends NpmBase { diff --git a/services/nuget/nuget-v3-service-family.js b/services/nuget/nuget-v3-service-family.js index 662566ae23..93104a13f3 100644 --- a/services/nuget/nuget-v3-service-family.js +++ b/services/nuget/nuget-v3-service-family.js @@ -2,7 +2,7 @@ const { promisify } = require('util') const Joi = require('joi') -const { regularUpdate } = require('../../lib/regular-update') +const { regularUpdate } = require('../../core/legacy/regular-update') const RouteBuilder = require('../route-builder') const { BaseJsonService, NotFound } = require('..') const { renderVersionBadge, renderDownloadBadge } = require('./nuget-helpers') diff --git a/services/php-version.js b/services/php-version.js index f8b4d4ecf2..2e21ff9780 100644 --- a/services/php-version.js +++ b/services/php-version.js @@ -7,7 +7,7 @@ const { promisify } = require('util') const request = require('request') -const { regularUpdate } = require('../lib/regular-update') +const { regularUpdate } = require('../core/legacy/regular-update') const { listCompare } = require('./version') const { omitv } = require('./text-formatters') diff --git a/services/route-builder.js b/services/route-builder.js index a2718ec676..99679f3161 100644 --- a/services/route-builder.js +++ b/services/route-builder.js @@ -1,6 +1,6 @@ 'use strict' -const { toArray } = require('../lib/badge-data') +const toArray = require('../core/base-service/to-array') /* * Factory class for building a BaseService `route` object. This class is useful