From dd26a018c5f4cb3bd0632a17ef6fec9b0f65e3a7 Mon Sep 17 00:00:00 2001 From: AndreiMargineanu <37063463+AndreiMargineanu@users.noreply.github.com> Date: Tue, 6 Mar 2018 13:34:39 +0200 Subject: [PATCH] refactor: array concatenation (#1601) Refactors all instances of .concat() to use array spread operators instead Closes #1459 --- lib/config/index.js | 7 ++++--- lib/config/migrate-validate.js | 4 ++-- lib/config/presets.js | 8 ++++---- lib/config/validation.js | 8 ++++---- lib/manager/index.js | 2 +- lib/manager/travis/package.js | 2 +- lib/platform/github/gh-got-wrapper.js | 7 ++++--- lib/platform/gitlab/gl-got-wrapper.js | 7 ++++--- lib/workers/branch/commit.js | 7 ++++--- lib/workers/dep-type/index.js | 2 +- lib/workers/package-file/index.js | 7 ++++--- lib/workers/repository/index.js | 2 +- lib/workers/repository/init/base.js | 2 +- .../repository/onboarding/pr/config-description.js | 2 +- lib/workers/repository/updates/branchify.js | 9 ++++++--- lib/workers/repository/updates/determine.js | 7 ++++--- 16 files changed, 46 insertions(+), 37 deletions(-) diff --git a/lib/config/index.js b/lib/config/index.js index 97c850a381..81769486f5 100644 --- a/lib/config/index.js +++ b/lib/config/index.js @@ -123,9 +123,10 @@ function mergeChildConfig(parentConfig, childConfig) { ) { logger.trace(`mergeable option: ${option.name}`); if (option.type === 'list') { - config[option.name] = (parentConfig[option.name] || []).concat( - config[option.name] || [] - ); + config[option.name] = [ + ...(parentConfig[option.name] || []), + ...(config[option.name] || []), + ]; } else { config[option.name] = { ...parentConfig[option.name], diff --git a/lib/config/migrate-validate.js b/lib/config/migrate-validate.js index ec33e6ef5f..11be51a91f 100644 --- a/lib/config/migrate-validate.js +++ b/lib/config/migrate-validate.js @@ -24,10 +24,10 @@ function migrateAndValidate(config, input) { if (errors && errors.length) { logger.info({ errors }, 'Found renovate config errors'); } - massagedConfig.errors = (config.errors || []).concat(errors); + massagedConfig.errors = [...(config.errors || []), ...errors]; if (!config.repoIsOnboarded) { // TODO #556 - enable warnings in real PRs - massagedConfig.warnings = (config.warnings || []).concat(warnings); + massagedConfig.warnings = [...(config.warnings || []), ...warnings]; } return massagedConfig; } diff --git a/lib/config/presets.js b/lib/config/presets.js index 8ff9919888..62c101bbd4 100644 --- a/lib/config/presets.js +++ b/lib/config/presets.js @@ -54,10 +54,10 @@ async function resolveConfigPresets(inputConfig, existingPresets = []) { fetchedPreset = {}; } } - const presetConfig = await resolveConfigPresets( - fetchedPreset, - existingPresets.concat([preset]) - ); + const presetConfig = await resolveConfigPresets(fetchedPreset, [ + ...existingPresets, + ...[preset], + ]); config = configParser.mergeChildConfig(config, presetConfig); } } diff --git a/lib/config/validation.js b/lib/config/validation.js index e0fe44d25e..a62d64b5f4 100644 --- a/lib/config/validation.js +++ b/lib/config/validation.js @@ -90,8 +90,8 @@ function validateConfig(config) { val.forEach(subval => { if (isObject(subval)) { const subValidation = module.exports.validateConfig(subval); - warnings = warnings.concat(subValidation.warnings); - errors = errors.concat(subValidation.errors); + warnings = [...warnings, ...subValidation.warnings]; + errors = [...errors, ...subValidation.errors]; } }); } @@ -105,8 +105,8 @@ function validateConfig(config) { } else if (type === 'json') { if (isObject(val)) { const subValidation = module.exports.validateConfig(val); - warnings = warnings.concat(subValidation.warnings); - errors = errors.concat(subValidation.errors); + warnings = [...warnings, ...subValidation.warnings]; + errors = [...errors, ...subValidation.errors]; } else { errors.push({ depName: 'Configuration Error', diff --git a/lib/manager/index.js b/lib/manager/index.js index 129908c438..0b8d3ea014 100644 --- a/lib/manager/index.js +++ b/lib/manager/index.js @@ -54,7 +54,7 @@ async function detectPackageFiles(config) { } if (files.length) { logger.info({ manager, files }, `Detected package files`); - packageFiles = packageFiles.concat(files); + packageFiles = [...packageFiles, ...files]; } } logger.debug({ packageFiles }, 'All detected package files'); diff --git a/lib/manager/travis/package.js b/lib/manager/travis/package.js index 4c3588a7f2..c2855c40e4 100644 --- a/lib/manager/travis/package.js +++ b/lib/manager/travis/package.js @@ -21,7 +21,7 @@ function getPackageUpdates(config) { } const newVersion = supportPolicy .map(policy => policies[policy]) - .reduce((result, policy) => result.concat(policy), []) + .reduce((result, policy) => [...result, ...policy], []) .sort() // sort combined array .reverse() // we want to order latest to oldest .map(version => `${version}`); // convert to strings diff --git a/lib/platform/github/gh-got-wrapper.js b/lib/platform/github/gh-got-wrapper.js index b05f3b7f7f..9fd9943e7c 100644 --- a/lib/platform/github/gh-got-wrapper.js +++ b/lib/platform/github/gh-got-wrapper.js @@ -38,9 +38,10 @@ async function get(path, opts, retries = 5) { // Check if result is paginated const linkHeader = parseLinkHeader(res.headers.link); if (linkHeader && linkHeader.next && linkHeader.next.page !== '11') { - res.body = res.body.concat( - (await get(linkHeader.next.url, opts, retries)).body - ); + res.body = [ + ...res.body, + ...(await get(linkHeader.next.url, opts, retries)).body, + ]; } } if (method === 'get' && path.startsWith('repos/')) { diff --git a/lib/platform/gitlab/gl-got-wrapper.js b/lib/platform/gitlab/gl-got-wrapper.js index e517af745b..364857d992 100644 --- a/lib/platform/gitlab/gl-got-wrapper.js +++ b/lib/platform/gitlab/gl-got-wrapper.js @@ -16,9 +16,10 @@ async function get(path, opts, retries = 5) { try { const linkHeader = parseLinkHeader(res.headers.link); if (linkHeader && linkHeader.next) { - res.body = res.body.concat( - (await get(linkHeader.next.url, opts, retries)).body - ); + res.body = [ + ...res.body, + ...(await get(linkHeader.next.url, opts, retries)).body, + ]; } } catch (err) { logger.warn({ err }, 'Pagination error'); diff --git a/lib/workers/branch/commit.js b/lib/workers/branch/commit.js index 135b5b6ba1..7222445021 100644 --- a/lib/workers/branch/commit.js +++ b/lib/workers/branch/commit.js @@ -5,9 +5,10 @@ module.exports = { }; async function commitFilesToBranch(config) { - const updatedFiles = config.updatedPackageFiles.concat( - config.updatedLockFiles - ); + const updatedFiles = [ + ...config.updatedPackageFiles, + ...config.updatedLockFiles, + ]; if (updatedFiles && updatedFiles.length) { logger.debug(`${updatedFiles.length} file(s) to commit`); let commitMessage = handlebars.compile(config.commitMessage)(config); diff --git a/lib/workers/dep-type/index.js b/lib/workers/dep-type/index.js index a31e279d13..6f660cc4a9 100644 --- a/lib/workers/dep-type/index.js +++ b/lib/workers/dep-type/index.js @@ -41,7 +41,7 @@ async function renovateDepType(packageContent, config) { const allUpgrades = await Promise.all(pkgWorkers); logger.trace({ config: allUpgrades }, `allUpgrades`); // Squash arrays into one - const combinedUpgrades = [].concat(...allUpgrades); + const combinedUpgrades = [...allUpgrades]; logger.trace({ config: combinedUpgrades }, `combinedUpgrades`); return combinedUpgrades; } diff --git a/lib/workers/package-file/index.js b/lib/workers/package-file/index.js index c4da377906..0173e429e5 100644 --- a/lib/workers/package-file/index.js +++ b/lib/workers/package-file/index.js @@ -122,9 +122,10 @@ async function renovatePackageJson(input) { }); logger.trace({ config: depTypeConfigs }, `depTypeConfigs`); for (const depTypeConfig of depTypeConfigs) { - upgrades = upgrades.concat( - await depTypeWorker.renovateDepType(config.content, depTypeConfig) - ); + upgrades = [ + ...upgrades, + ...(await depTypeWorker.renovateDepType(config.content, depTypeConfig)), + ]; } if ( config.lockFileMaintenance.enabled && diff --git a/lib/workers/repository/index.js b/lib/workers/repository/index.js index 69e57dab78..854efa3c47 100644 --- a/lib/workers/repository/index.js +++ b/lib/workers/repository/index.js @@ -47,7 +47,7 @@ async function renovateRepository(repoConfig, token, loop = 1) { if (index === 0) { config = res; } else { - config.branches = config.branches.concat(res.branches); + config.branches = [...config.branches, ...res.branches]; } } // istanbul ignore next diff --git a/lib/workers/repository/init/base.js b/lib/workers/repository/init/base.js index 49fdcffe0e..41fb81b6ee 100644 --- a/lib/workers/repository/init/base.js +++ b/lib/workers/repository/init/base.js @@ -20,7 +20,7 @@ async function checkBaseBranch(config) { logger.warn(message); } } - return { ...config, errors: config.errors.concat(error) }; + return { ...config, errors: [...config.errors, ...error] }; } module.exports = { diff --git a/lib/workers/repository/onboarding/pr/config-description.js b/lib/workers/repository/onboarding/pr/config-description.js index d54ca87420..fdaf1b688c 100644 --- a/lib/workers/repository/onboarding/pr/config-description.js +++ b/lib/workers/repository/onboarding/pr/config-description.js @@ -12,7 +12,7 @@ function getScheduleDesc(config) { function getDescriptionArray(config) { logger.debug('getDescriptionArray()'); logger.trace({ config }); - return (config.description || []).concat(getScheduleDesc(config)); + return [...(config.description || []), ...getScheduleDesc(config)]; } function getConfigDesc(config) { diff --git a/lib/workers/repository/updates/branchify.js b/lib/workers/repository/updates/branchify.js index ebea4b4ca4..ee3e316f67 100644 --- a/lib/workers/repository/updates/branchify.js +++ b/lib/workers/repository/updates/branchify.js @@ -36,7 +36,10 @@ function branchifyUpgrades(config) { branchName = handlebars.compile(upgrade.branchName)(upgrade); } branchUpgrades[branchName] = branchUpgrades[branchName] || []; - branchUpgrades[branchName] = [upgrade].concat(branchUpgrades[branchName]); + branchUpgrades[branchName] = [ + ...[upgrade], + ...branchUpgrades[branchName], + ]; } } logger.debug(`Returning ${Object.keys(branchUpgrades).length} branch(es)`); @@ -58,8 +61,8 @@ function branchifyUpgrades(config) { : config.branchList; return { ...config, - errors: config.errors.concat(errors), - warnings: config.warnings.concat(warnings), + errors: [...config.errors, ...errors], + warnings: [...config.warnings, ...warnings], branches, branchList, upgrades: null, diff --git a/lib/workers/repository/updates/determine.js b/lib/workers/repository/updates/determine.js index 058864e760..077aa5fb9f 100644 --- a/lib/workers/repository/updates/determine.js +++ b/lib/workers/repository/updates/determine.js @@ -17,9 +17,10 @@ async function determineRepoUpgrades(config) { logger.trace({ fullPackageFile: packageFile }); let packageFileConfig = mergeChildConfig(config, packageFile); packageFileConfig = filterConfig(packageFileConfig, 'packageFile'); - upgrades = upgrades.concat( - await packageFileWorker.renovatePackageFile(packageFileConfig) - ); + upgrades = [ + ...upgrades, + ...(await packageFileWorker.renovatePackageFile(packageFileConfig)), + ]; } let semanticCommits; if (upgrades.length) { -- GitLab