From c3ad246a998709852b1c8fdd91e5eadd2c70aea3 Mon Sep 17 00:00:00 2001 From: Rhys Arkins Date: Tue, 9 Nov 2021 07:04:34 +0100 Subject: [PATCH] fix: no-param-reassign (#12571) --- .eslintrc.js | 1 + lib/config/presets/index.ts | 4 +++- lib/config/presets/util.ts | 4 ++-- lib/logger/utils.ts | 3 ++- lib/manager/ansible-galaxy/collections.ts | 2 -- lib/manager/terraform/modules.ts | 1 - lib/manager/terraform/providers.ts | 1 - lib/manager/terraform/required-providers.ts | 2 -- lib/manager/terraform/required-version.ts | 1 - lib/manager/terraform/resources.ts | 1 - lib/manager/terraform/util.ts | 1 - lib/manager/terragrunt/modules.ts | 1 - lib/util/http/index.ts | 5 +++-- lib/util/index.ts | 6 +++--- lib/versioning/regex/index.ts | 6 ++---- lib/workers/pr/body/index.ts | 1 - lib/workers/repository/dependency-dashboard.ts | 2 -- 17 files changed, 16 insertions(+), 26 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index 6c9228c3ebef8e..e57f1d1c0a9a4c 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -36,6 +36,7 @@ module.exports = { // other rules 'import/prefer-default-export': 0, // no benefit + 'no-param-reassign': 'error', 'no-restricted-syntax': 0, 'no-await-in-loop': 0, 'prefer-destructuring': 0, diff --git a/lib/config/presets/index.ts b/lib/config/presets/index.ts index 8ad679445e81bd..29e57868156ea8 100644 --- a/lib/config/presets/index.ts +++ b/lib/config/presets/index.ts @@ -5,6 +5,7 @@ import { } from '../../constants/error-messages'; import { logger } from '../../logger'; import { ExternalHostError } from '../../types/errors/external-host-error'; +import { clone } from '../../util/clone'; import { regEx } from '../../util/regex'; import * as massage from '../massage'; import * as migration from '../migration'; @@ -251,9 +252,10 @@ export async function getPreset( export async function resolveConfigPresets( inputConfig: AllConfig, baseConfig?: RenovateConfig, - ignorePresets?: string[], + _ignorePresets?: string[], existingPresets: string[] = [] ): Promise { + let ignorePresets = clone(_ignorePresets); if (!ignorePresets || ignorePresets.length === 0) { ignorePresets = inputConfig.ignorePresets || []; } diff --git a/lib/config/presets/util.ts b/lib/config/presets/util.ts index 4f701cb4ed7e94..f0a014409600a6 100644 --- a/lib/config/presets/util.ts +++ b/lib/config/presets/util.ts @@ -14,11 +14,11 @@ export async function fetchPreset({ pkgName, filePreset, presetPath, - endpoint, + endpoint: _endpoint, packageTag = null, fetch, }: FetchPresetConfig): Promise { - endpoint = ensureTrailingSlash(endpoint); + const endpoint = ensureTrailingSlash(_endpoint); const [fileName, presetName, subPresetName] = filePreset.split('/'); const pathPrefix = presetPath ? `${presetPath}/` : ''; const buildFilePath = (name: string): string => `${pathPrefix}${name}`; diff --git a/lib/logger/utils.ts b/lib/logger/utils.ts index ed605e9193b73b..03604ac2a03f48 100644 --- a/lib/logger/utils.ts +++ b/lib/logger/utils.ts @@ -89,7 +89,8 @@ export default function prepareError(err: Error): Record { return response; } -export function sanitizeValue(value: unknown, seen = new WeakMap()): any { +export function sanitizeValue(_value: unknown, seen = new WeakMap()): any { + let value = _value; if (Array.isArray(value)) { const length = value.length; const arrayResult = Array(length); diff --git a/lib/manager/ansible-galaxy/collections.ts b/lib/manager/ansible-galaxy/collections.ts index ed6877f4c45169..8bf6f2bdebc63f 100644 --- a/lib/manager/ansible-galaxy/collections.ts +++ b/lib/manager/ansible-galaxy/collections.ts @@ -75,7 +75,6 @@ function handleGitDep( dep.currentValue = dep.managerData.version; } } - /* eslint-enable no-param-reassign */ } function handleGalaxyDep(dep: PackageDependency): void { @@ -83,7 +82,6 @@ function handleGalaxyDep(dep: PackageDependency): void { dep.depName = dep.managerData.name; dep.registryUrls = dep.managerData.source ? [dep.managerData.source] : []; dep.currentValue = dep.managerData.version; - /* eslint-enable no-param-reassign */ } function finalize(dependency: PackageDependency): boolean { diff --git a/lib/manager/terraform/modules.ts b/lib/manager/terraform/modules.ts index c734b38122610f..810c614c0ed0f9 100644 --- a/lib/manager/terraform/modules.ts +++ b/lib/manager/terraform/modules.ts @@ -69,5 +69,4 @@ export function analyseTerraformModule(dep: PackageDependency): void { logger.debug({ dep }, 'terraform dep has no source'); dep.skipReason = SkipReason.NoSource; } - /* eslint-enable no-param-reassign */ } diff --git a/lib/manager/terraform/providers.ts b/lib/manager/terraform/providers.ts index 42bdd842367fe7..229395dc1d3bd3 100644 --- a/lib/manager/terraform/providers.ts +++ b/lib/manager/terraform/providers.ts @@ -99,5 +99,4 @@ export function analyzeTerraformProvider( massageProviderLookupName(dep); dep.lockedVersion = getLockedVersion(dep, locks); - /* eslint-enable no-param-reassign */ } diff --git a/lib/manager/terraform/required-providers.ts b/lib/manager/terraform/required-providers.ts index 555d2650e9cc9d..b59956d46b66d0 100644 --- a/lib/manager/terraform/required-providers.ts +++ b/lib/manager/terraform/required-providers.ts @@ -33,7 +33,6 @@ function extractBlock( default: break; } - /* eslint-enable no-param-reassign */ } } while (line.trim() !== '}'); return lineNumber; @@ -79,5 +78,4 @@ export function analyzeTerraformRequiredProvider( ): void { analyzeTerraformProvider(dep, locks); dep.depType = `required_provider`; - /* eslint-enable no-param-reassign */ } diff --git a/lib/manager/terraform/required-version.ts b/lib/manager/terraform/required-version.ts index 23d3bc88f4a940..1de63c941f06fa 100644 --- a/lib/manager/terraform/required-version.ts +++ b/lib/manager/terraform/required-version.ts @@ -49,5 +49,4 @@ export function analyseTerraformVersion(dep: PackageDependency): void { dep.datasource = datasourceGithubTags.id; dep.depName = 'hashicorp/terraform'; dep.extractVersion = 'v(?.*)$'; - /* eslint-enable no-param-reassign */ } diff --git a/lib/manager/terraform/resources.ts b/lib/manager/terraform/resources.ts index 396fb4459db5d4..7b441b5911eeda 100644 --- a/lib/manager/terraform/resources.ts +++ b/lib/manager/terraform/resources.ts @@ -109,5 +109,4 @@ export function analyseTerraformResource( dep.skipReason = SkipReason.InvalidValue; break; } - /* eslint-enable no-param-reassign */ } diff --git a/lib/manager/terraform/util.ts b/lib/manager/terraform/util.ts index e804c5d7cb7f57..e0f2f08ad1f9e7 100644 --- a/lib/manager/terraform/util.ts +++ b/lib/manager/terraform/util.ts @@ -59,7 +59,6 @@ export function massageProviderLookupName(dep: PackageDependency): void { // handle cases like `Telmate/proxmox` dep.lookupName = dep.lookupName.toLowerCase(); - /* eslint-enable no-param-reassign */ } export function getLockedVersion( diff --git a/lib/manager/terragrunt/modules.ts b/lib/manager/terragrunt/modules.ts index 3657acdb7ad53d..f7a8f3367e64dc 100644 --- a/lib/manager/terragrunt/modules.ts +++ b/lib/manager/terragrunt/modules.ts @@ -70,5 +70,4 @@ export function analyseTerragruntModule(dep: PackageDependency): void { logger.debug({ dep }, 'terragrunt dep has no source'); dep.skipReason = SkipReason.NoSource; } - /* eslint-enable no-param-reassign */ } diff --git a/lib/util/http/index.ts b/lib/util/http/index.ts index 6baddc7fd377e5..74f85816778772 100644 --- a/lib/util/http/index.ts +++ b/lib/util/http/index.ts @@ -293,12 +293,13 @@ export class Http { ...options, }; + let resolvedUrl = url; // istanbul ignore else: needs test if (options?.baseUrl) { - url = resolveBaseUrl(options.baseUrl, url); + resolvedUrl = resolveBaseUrl(options.baseUrl, url); } applyDefaultHeaders(combinedOptions); - return got.stream(url, combinedOptions); + return got.stream(resolvedUrl, combinedOptions); } } diff --git a/lib/util/index.ts b/lib/util/index.ts index 4dd875664b5f35..a8a142dbebef80 100644 --- a/lib/util/index.ts +++ b/lib/util/index.ts @@ -4,14 +4,14 @@ export function sampleSize(array: string[], n: number): string[] { return []; } - n = n > length ? length : n; + const sampleNumber = n > length ? length : n; let index = 0; const lastIndex = length - 1; const result = [...array]; - while (index < n) { + while (index < sampleNumber) { const rand = index + Math.floor(Math.random() * (lastIndex - index + 1)); [result[rand], result[index]] = [result[index], result[rand]]; index += 1; } - return result.slice(0, n); + return result.slice(0, sampleNumber); } diff --git a/lib/versioning/regex/index.ts b/lib/versioning/regex/index.ts index 7c3efde7053334..b5db3258097814 100644 --- a/lib/versioning/regex/index.ts +++ b/lib/versioning/regex/index.ts @@ -41,11 +41,9 @@ export class RegExpVersioningApi extends GenericVersioningApi { // RegExp('^(?\\d+)\\.(?\\d+)\\.(?\\d+)(:?-(?.*-r)(?\\d+))?$'); private _config: RegExp = null; - constructor(new_config: string) { + constructor(_new_config: string) { super(); - if (!new_config) { - new_config = '^(?\\d+)?$'; - } + const new_config = _new_config || '^(?\\d+)?$'; // without at least one of {major, minor, patch} specified in the regex, // this versioner will not work properly diff --git a/lib/workers/pr/body/index.ts b/lib/workers/pr/body/index.ts index 02944d193cdb4b..0a3f509fc92711 100644 --- a/lib/workers/pr/body/index.ts +++ b/lib/workers/pr/body/index.ts @@ -53,7 +53,6 @@ function massageUpdateMetadata(config: BranchConfig): void { references.push(`[changelog](${changelogUrl})`); } upgrade.references = references.join(', '); - /* eslint-enable no-param-reassign */ }); } diff --git a/lib/workers/repository/dependency-dashboard.ts b/lib/workers/repository/dependency-dashboard.ts index b85596b78d5df6..6d1e9404e5c618 100644 --- a/lib/workers/repository/dependency-dashboard.ts +++ b/lib/workers/repository/dependency-dashboard.ts @@ -29,7 +29,6 @@ function parseDashboardIssue(issueBody: string): DependencyDashboard { let dependencyDashboardRebaseAllOpen = false; if (checkedRebaseAll) { dependencyDashboardRebaseAllOpen = true; - /* eslint-enable no-param-reassign */ } return { dependencyDashboardChecks, dependencyDashboardRebaseAllOpen }; } @@ -50,7 +49,6 @@ export async function readDashboardBody(config: RenovateConfig): Promise { Object.assign(config, parseDashboardIssue(issue.body)); } } - /* eslint-enable no-param-reassign */ } function getListItem(branch: BranchConfig, type: string): string {