diff --git a/.eslintrc.js b/.eslintrc.js index 486da69d3cc6725edb9bd205c10d2337c392e07a..190ad0dec7ba8c162089b8666f49c8d2a778df01 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -37,6 +37,7 @@ module.exports = { // other rules 'consistent-return': 'error', + eqeqeq: 'error', 'no-console': 'error', 'no-negated-condition': 'error', 'no-param-reassign': 'error', diff --git a/lib/config/migration.ts b/lib/config/migration.ts index 6b548e4f665b53d8eaa4f5b530f0a9ef917c47ba..ddad631b66a5078de50099f51ff29964c54073c2 100644 --- a/lib/config/migration.ts +++ b/lib/config/migration.ts @@ -316,11 +316,11 @@ export function migrateConfig( migratedConfig.automergeType = 'branch'; } else if (key === 'automergeMinor') { migratedConfig.minor = migratedConfig.minor || {}; - migratedConfig.minor.automerge = val == true; + migratedConfig.minor.automerge = !!val; delete migratedConfig[key]; } else if (key === 'automergeMajor') { migratedConfig.major = migratedConfig.major || {}; - migratedConfig.major.automerge = val == true; + migratedConfig.major.automerge = !!val; delete migratedConfig[key]; } else if (key === 'multipleMajorPrs') { delete migratedConfig.multipleMajorPrs; @@ -336,7 +336,7 @@ export function migrateConfig( migratedConfig.separateMinorPatch = val; } else if (key === 'automergePatch') { migratedConfig.patch = migratedConfig.patch || {}; - migratedConfig.patch.automerge = val == true; + migratedConfig.patch.automerge = !!val; delete migratedConfig[key]; } else if (key === 'ignoreNodeModules') { delete migratedConfig.ignoreNodeModules; diff --git a/lib/config/validation.ts b/lib/config/validation.ts index 7ca765b547fed4886c5ad0a5247239724637fe7a..fb99cc6f3d02fbf35f69597476c381b359fa8324 100644 --- a/lib/config/validation.ts +++ b/lib/config/validation.ts @@ -228,7 +228,7 @@ export async function validateConfig( message: `${currentPath}: ${errorMessage}`, }); } - } else if (val != null) { + } else if (val !== null) { const type = optionTypes[key]; if (type === 'boolean') { if (val !== true && val !== false) { diff --git a/lib/datasource/galaxy-collection/index.ts b/lib/datasource/galaxy-collection/index.ts index 8b57b2063eec68950e9152385665fcf6538720d7..74c333c95191464d92ed8e97aa5e11a5adc571c5 100644 --- a/lib/datasource/galaxy-collection/index.ts +++ b/lib/datasource/galaxy-collection/index.ts @@ -109,7 +109,7 @@ export class GalaxyCollectionDatasource extends Datasource { { concurrency: 5 } // allow 5 requests at maximum in parallel ); // filter failed versions - const filteredReleases = enrichedReleases.filter((value) => value != null); + const filteredReleases = enrichedReleases.filter(Boolean); // extract base information which are only provided on the release from the newest release const result: ReleaseResult = { releases: filteredReleases, diff --git a/lib/logger/utils.ts b/lib/logger/utils.ts index 03604ac2a03f483804350e93d7e990bef277840e..a06363e7d17e9d9fbfc0b13bb9de7cbbbef365fa 100644 --- a/lib/logger/utils.ts +++ b/lib/logger/utils.ts @@ -114,7 +114,7 @@ export function sanitizeValue(_value: unknown, seen = new WeakMap()): any { const valueType = typeof value; - if (value != null && valueType !== 'function' && valueType === 'object') { + if (value && valueType !== 'function' && valueType === 'object') { if (value instanceof Date) { return value; } diff --git a/lib/manager/ansible-galaxy/collections.ts b/lib/manager/ansible-galaxy/collections.ts index 8bf6f2bdebc63fb357cacacd8f7f90ce475f5500..43888baf49a9b4754226ed07c7ad6715f10a7291 100644 --- a/lib/manager/ansible-galaxy/collections.ts +++ b/lib/manager/ansible-galaxy/collections.ts @@ -120,7 +120,7 @@ function finalize(dependency: PackageDependency): boolean { return true; } - if (dependency.currentValue == null && dep.skipReason == null) { + if (!dependency.currentValue && !dep.skipReason) { dep.skipReason = SkipReason.NoVersion; } return true; diff --git a/lib/manager/ansible-galaxy/extract.spec.ts b/lib/manager/ansible-galaxy/extract.spec.ts index 960e6f8ea3cb258828972a6b54bad9c52d9aba0e..1e2b80d0a62666e58f9599f86149e6f42f350036 100644 --- a/lib/manager/ansible-galaxy/extract.spec.ts +++ b/lib/manager/ansible-galaxy/extract.spec.ts @@ -35,9 +35,7 @@ describe('manager/ansible-galaxy/extract', () => { const res = extractPackageFile(collections1, 'requirements.yml'); expect(res.deps).toMatchSnapshot(); expect(res.deps).toHaveLength(13); - expect(res.deps.filter((value) => value.skipReason != null)).toHaveLength( - 6 - ); + expect(res.deps.filter((value) => value.skipReason)).toHaveLength(6); }); it('check collection style requirements file in reverse order and missing empty line', () => { const res = extractPackageFile(collections2, 'requirements.yml'); diff --git a/lib/manager/ansible-galaxy/roles.ts b/lib/manager/ansible-galaxy/roles.ts index f47da5a9059998cfcd1495716bbf3320f4df3881..23aa4398147351e3e89e89ee733795cc8527c40d 100644 --- a/lib/manager/ansible-galaxy/roles.ts +++ b/lib/manager/ansible-galaxy/roles.ts @@ -94,7 +94,7 @@ export function extractRoles(lines: string[]): PackageDependency[] { }; do { const localdep = interpretLine(lineMatch, lineNumber, dep); - if (localdep == null) { + if (!localdep) { break; } const line = lines[lineNumber + 1]; diff --git a/lib/manager/argocd/extract.ts b/lib/manager/argocd/extract.ts index ae5d1dd730d36b3c129a0b4ffc6d944f044aaad0..9561f7c5061b5a6450de38252f9c43bb42c15e77 100644 --- a/lib/manager/argocd/extract.ts +++ b/lib/manager/argocd/extract.ts @@ -12,7 +12,7 @@ function createDependency( const source = definition.spec?.source; if ( - source == null || + !source || !is.nonEmptyString(source.repoURL) || !is.nonEmptyString(source.targetRevision) ) { diff --git a/lib/manager/gradle-wrapper/artifacts.ts b/lib/manager/gradle-wrapper/artifacts.ts index 3dda4a837c9f89bca827a3100e285634f54e951a..ca14ee8325a28f8397a2cad72cc29eaccf8efd0b 100644 --- a/lib/manager/gradle-wrapper/artifacts.ts +++ b/lib/manager/gradle-wrapper/artifacts.ts @@ -126,7 +126,7 @@ export async function updateArtifacts({ addIfUpdated(status, fileProjectPath) ) ) - ).filter((e) => e != null); + ).filter(Boolean); logger.debug( { files: updateArtifactsResult.map((r) => r.file.name) }, `Returning updated gradle-wrapper files` diff --git a/lib/manager/gradle/deep/__testutil__/gradle.ts b/lib/manager/gradle/deep/__testutil__/gradle.ts index 444accb9a872d1466f6e4b3644d10e7aee56698b..41568651fb2635765a1180aee95d6e57db2a6237 100644 --- a/lib/manager/gradle/deep/__testutil__/gradle.ts +++ b/lib/manager/gradle/deep/__testutil__/gradle.ts @@ -28,7 +28,7 @@ ${javaVersionOutput}`); let cachedJavaVersion: number | null = null; function determineJavaVersion(): number { - if (cachedJavaVersion == null) { + if (!cachedJavaVersion) { let javaVersionCommand: SpawnSyncReturns<string>; let error: Error; try { diff --git a/lib/manager/regex/index.ts b/lib/manager/regex/index.ts index beb11affa4ce36f6fdd942162a8198c5a2e9536b..a5a327051ae10919eb99095d764535dc5a2ad7c6 100644 --- a/lib/manager/regex/index.ts +++ b/lib/manager/regex/index.ts @@ -150,7 +150,7 @@ function handleRecursive( regEx(matchString, 'g') ); // abort if we have no matchString anymore - if (regexes[index] == null) { + if (!regexes[index]) { return []; } return regexMatchAll(regexes[index], content).flatMap((match) => { diff --git a/lib/manager/terraform/lockfile/index.ts b/lib/manager/terraform/lockfile/index.ts index 4fe381265a7f1199ec91bf41259ec84fab439322..c1a34a6d4ad5fef93ffb8caff1b6ac798d46bf3c 100644 --- a/lib/manager/terraform/lockfile/index.ts +++ b/lib/manager/terraform/lockfile/index.ts @@ -110,10 +110,7 @@ export async function updateArtifacts({ } } // if no updates have been found or there are failed hashes abort - if ( - updates.length === 0 || - updates.some((value) => value.newHashes == null) - ) { + if (updates.length === 0 || updates.some((value) => !value.newHashes)) { return null; } diff --git a/lib/manager/terraform/resources.ts b/lib/manager/terraform/resources.ts index 7b441b5911eedaa428a70d294368fa8e1f180a7c..46bdf1abc3d0cbd634e976f365d5fdcf8e750645 100644 --- a/lib/manager/terraform/resources.ts +++ b/lib/manager/terraform/resources.ts @@ -94,7 +94,7 @@ export function analyseTerraformResource( break; case TerraformResourceTypes.helm_release: - if (dep.managerData.chart == null) { + if (!dep.managerData.chart) { dep.skipReason = SkipReason.InvalidName; } else if (checkIfStringIsPath(dep.managerData.chart)) { dep.skipReason = SkipReason.LocalChart; diff --git a/lib/util/index.ts b/lib/util/index.ts index a8a142dbebef8017488ca5561c5466db9406d64c..dcd33b5ceda2d71e28a97ab17b8d36637bc5768e 100644 --- a/lib/util/index.ts +++ b/lib/util/index.ts @@ -1,5 +1,5 @@ export function sampleSize(array: string[], n: number): string[] { - const length = array == null ? 0 : array.length; + const length = array ? array.length : 0; if (!length || n < 1) { return []; } diff --git a/lib/workers/repository/onboarding/branch/check.ts b/lib/workers/repository/onboarding/branch/check.ts index c48f445c349291311d3a71f48ba896f22f800749..c609e41b4d7c3ab717bfeee37742d9355df11ee2 100644 --- a/lib/workers/repository/onboarding/branch/check.ts +++ b/lib/workers/repository/onboarding/branch/check.ts @@ -121,5 +121,4 @@ export const isOnboarded = async (config: RenovateConfig): Promise<boolean> => { export const onboardingPrExists = async ( config: RenovateConfig -): Promise<boolean> => - (await platform.getBranchPr(config.onboardingBranch)) != null; +): Promise<boolean> => !!(await platform.getBranchPr(config.onboardingBranch));