Skip to content

Commit

Permalink
refactor: enable strict checks (#16168)
Browse files Browse the repository at this point in the history
* refactor:  enable strict checks

* chore: revert changes

* chore: fix tsconfig
  • Loading branch information
viceice committed Jun 21, 2022
1 parent 03b0d2a commit e5c6f38
Show file tree
Hide file tree
Showing 146 changed files with 341 additions and 474 deletions.
2 changes: 1 addition & 1 deletion .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ module.exports = {
},
],
'@typescript-eslint/prefer-optional-chain': 2,
'@typescript-eslint/prefer-nullish-coalescing': 2,
'@typescript-eslint/prefer-nullish-coalescing': 1, // TODO: Temporary (#7154)
curly: [2, 'all'],
'require-await': 2,
// next 2 rules disabled due to https://github.com/microsoft/TypeScript/issues/20024
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -137,8 +137,8 @@ jobs:
- name: Type check
run: yarn type-check

- name: Null check
run: yarn null-check
- name: Strict check
run: yarn strict-check

release:
needs: [lint, test]
Expand Down
3 changes: 0 additions & 3 deletions lib/config/migration.ts
Original file line number Diff line number Diff line change
Expand Up @@ -155,13 +155,10 @@ export function migrateConfig(config: RenovateConfig): MigratedConfig {
migratedConfig[key] = String(val[0]);
} else if (key === 'node' && (val as RenovateConfig).enabled === true) {
// validated non-null
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
delete migratedConfig.node!.enabled;
migratedConfig.travis = migratedConfig.travis ?? {};
migratedConfig.travis.enabled = true;
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
if (Object.keys(migratedConfig.node!).length) {
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
const subMigrate = migrateConfig(migratedConfig.node!);
migratedConfig.node = subMigrate.migratedConfig;
} else {
Expand Down
2 changes: 0 additions & 2 deletions lib/config/options/index.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ describe('config/options/index', () => {
.filter((option) => option.supportedManagers)
.forEach((option) => {
expect(option.supportedManagers).toBeNonEmptyArray();
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
for (const item of option.supportedManagers!) {
expect(managerList).toContain(item);
}
Expand All @@ -39,7 +38,6 @@ describe('config/options/index', () => {
.filter((option) => option.supportedPlatforms)
.forEach((option) => {
expect(option.supportedPlatforms).toBeNonEmptyArray();
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
for (const item of option.supportedPlatforms!) {
expect(platformList).toContain(item);
}
Expand Down
1 change: 0 additions & 1 deletion lib/config/presets/gitea/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@ export async function fetchJSONFile(
}

// TODO: null check #7154
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
return parsePreset(fromBase64(res.content!));
}

Expand Down
1 change: 0 additions & 1 deletion lib/config/presets/index.spec.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
/* eslint-disable @typescript-eslint/no-unnecessary-type-assertion */
import { Fixtures } from '../../../test/fixtures';
import { mocked } from '../../../test/util';
import type { RenovateConfig } from '../types';
Expand Down
1 change: 0 additions & 1 deletion lib/config/presets/local/common.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@ export async function fetchJSONFile(
}

// TODO: null check #7154
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
return parsePreset(raw!);
}

Expand Down
1 change: 0 additions & 1 deletion lib/config/presets/local/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,6 @@ export function getPreset({
presetName,
presetPath,
// TODO: fix type #7154
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
endpoint!,
tag
);
Expand Down
1 change: 0 additions & 1 deletion lib/config/presets/npm/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@ export async function getPreset({
}
const body = (await http.getJson<NpmResponse>(packageUrl)).body;
// TODO: check null #7154
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
dep = body.versions![body['dist-tags']!.latest];
} catch (err) {
throw new Error(PRESET_DEP_NOT_FOUND);
Expand Down
2 changes: 0 additions & 2 deletions lib/config/validation.ts
Original file line number Diff line number Diff line change
Expand Up @@ -320,7 +320,6 @@ export async function validateConfig(
if (key === 'packageRules') {
for (const [subIndex, packageRule] of val.entries()) {
if (is.object(packageRule)) {
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
const resolvedRule = migrateConfig({
packageRules: [
await resolveConfigPresets(
Expand Down Expand Up @@ -505,7 +504,6 @@ export async function validateConfig(
if (
(selectors.includes(key) || key === 'matchCurrentVersion') &&
// TODO: can be undefined ? #7154
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
!rulesRe.test(parentPath!) && // Inside a packageRule
(parentPath || !isPreset) // top level in a preset
) {
Expand Down
1 change: 0 additions & 1 deletion lib/modules/datasource/crate/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -267,7 +267,6 @@ export class CrateDatasource extends Datasource {
const clonePathPromise: Promise<string> | null = memCache.get(cacheKey);
let clonePath: string;

// eslint-disable-next-line @typescript-eslint/no-misused-promises
if (clonePathPromise) {
clonePath = await clonePathPromise;
} else {
Expand Down
12 changes: 4 additions & 8 deletions lib/modules/datasource/docker/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,7 @@ export async function getAuthHeaders(
)
).body;

const token = authResponse.token || authResponse.access_token;
const token = authResponse.token ?? authResponse.access_token;
// istanbul ignore if
if (!token) {
logger.warn('Failed to obtain docker registry token');
Expand Down Expand Up @@ -512,7 +512,7 @@ export class DockerDatasource extends Datasource {
manifest.mediaType === MediaType.ociManifestIndexV1 ||
(!manifest.mediaType && hasKey('manifests', manifest))
) {
const imageList = manifest as OciImageList;
const imageList = manifest;
if (imageList.manifests.length) {
logger.trace(
{ registry, dockerRepository, tag },
Expand Down Expand Up @@ -812,10 +812,9 @@ export class DockerDatasource extends Datasource {
{ registryUrl, packageName }: GetReleasesConfig,
newValue?: string
) => {
const newTag = newValue || 'latest';
const newTag = newValue ?? 'latest';
const { registryHost, dockerRepository } = getRegistryRepository(
packageName,
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
registryUrl!
);
return `${registryHost}:${dockerRepository}:${newTag}`;
Expand All @@ -827,13 +826,12 @@ export class DockerDatasource extends Datasource {
): Promise<string | null> {
const { registryHost, dockerRepository } = getRegistryRepository(
packageName,
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
registryUrl!
);
logger.debug(
`getDigest(${registryHost}, ${dockerRepository}, ${newValue})`
);
const newTag = newValue || 'latest';
const newTag = newValue ?? 'latest';
let digest: string | null = null;
try {
let manifestResponse = await this.getManifestResponse(
Expand All @@ -857,7 +855,6 @@ export class DockerDatasource extends Datasource {
dockerRepository,
newTag
);
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
digest = extractDigestFromResponseBody(manifestResponse!);
}
logger.debug({ digest }, 'Got docker digest');
Expand Down Expand Up @@ -895,7 +892,6 @@ export class DockerDatasource extends Datasource {
}: GetReleasesConfig): Promise<ReleaseResult | null> {
const { registryHost, dockerRepository } = getRegistryRepository(
packageName,
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
registryUrl!
);
const tags = await this.getTags(registryHost, dockerRepository);
Expand Down
9 changes: 2 additions & 7 deletions lib/modules/datasource/galaxy/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,13 +29,8 @@ export class GalaxyDatasource extends Datasource {
const userName = lookUp[0];
const projectName = lookUp[1];

const galaxyAPIUrl =
registryUrl +
'api/v1/roles/?owner__username=' +
userName +
'&name=' +
projectName;
const galaxyProjectUrl = registryUrl + userName + '/' + projectName;
const galaxyAPIUrl = `${registryUrl}api/v1/roles/?owner__username=${userName}&name=${projectName}`;
const galaxyProjectUrl = `${registryUrl}${userName}/${projectName}`;

let raw: HttpResponse<GalaxyResult> | null = null;
try {
Expand Down
6 changes: 2 additions & 4 deletions lib/modules/datasource/github-tags/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -74,10 +74,8 @@ export class GithubTagsDatasource extends GithubReleasesDatasource {
newValue?: string
): Promise<string | null> {
return newValue
? // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
this.getTagCommit(registryUrl, repo!, newValue)
: // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
this.getCommit(registryUrl, repo!);
? this.getTagCommit(registryUrl, repo!, newValue)
: this.getCommit(registryUrl, repo!);
}

override async getReleases(
Expand Down
1 change: 0 additions & 1 deletion lib/modules/datasource/gitlab-tags/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,6 @@ export class GitlabTagsDatasource extends Datasource {
): Promise<string | null> {
const depHost = getDepHost(registryUrl);

// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
const urlEncodedRepo = encodeURIComponent(repo!);
let digest: string | null = null;

Expand Down
2 changes: 0 additions & 2 deletions lib/modules/datasource/index.spec.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
/* fixme #7154 */
/* eslint-disable @typescript-eslint/no-unnecessary-type-assertion */
import fs from 'fs-extra';
import { logger } from '../../../test/util';
import {
Expand Down
13 changes: 6 additions & 7 deletions lib/modules/datasource/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -236,7 +236,7 @@ export function getDefaultVersioning(datasourceName: string): string {
if (!datasource) {
logger.warn({ datasourceName }, 'Missing datasource!');
}
return datasource?.defaultVersioning || 'semver';
return datasource?.defaultVersioning ?? 'semver';
}

function applyReplacements(
Expand Down Expand Up @@ -281,7 +281,7 @@ async function fetchReleases(
config.additionalRegistryUrls
);
let dep: ReleaseResult | null = null;
const registryStrategy = datasource.registryStrategy || 'hunt';
const registryStrategy = datasource.registryStrategy ?? 'hunt';
try {
if (is.nonEmptyArray(registryUrls)) {
if (registryStrategy === 'first') {
Expand Down Expand Up @@ -336,7 +336,7 @@ export async function getPkgReleases(
logger.warn('No datasource found');
return null;
}
const packageName = config.packageName || config.depName;
const packageName = config.packageName ?? config.depName;
if (!packageName) {
logger.error({ config }, 'Datasource getReleases without packageName');
return null;
Expand Down Expand Up @@ -374,7 +374,7 @@ export async function getPkgReleases(
}
// Use the datasource's default versioning if none is configured
const versioning =
config.versioning || getDefaultVersioning(config.datasource);
config.versioning ?? getDefaultVersioning(config.datasource);
const version = allVersioning.get(versioning);

// Filter and sort valid versions
Expand All @@ -391,7 +391,7 @@ export async function getPkgReleases(
);
// Filter releases for compatibility
for (const [constraintName, constraintValue] of Object.entries(
config.constraints || {}
config.constraints ?? {}
)) {
// Currently we only support if the constraint is a plain version
// TODO: Support range/range compatibility filtering #8476
Expand Down Expand Up @@ -448,7 +448,6 @@ export function getDigest(
return Promise.resolve(null);
}
const digestConfig = getDigestConfig(datasource, config);
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
return datasource.getDigest!(digestConfig, value);
}

Expand All @@ -457,6 +456,6 @@ export function getDefaultConfig(
): Promise<Record<string, unknown>> {
const loadedDatasource = getDatasourceFor(datasource);
return Promise.resolve<Record<string, unknown>>(
loadedDatasource?.defaultConfig || Object.create({})
loadedDatasource?.defaultConfig ?? Object.create({})
);
}
1 change: 0 additions & 1 deletion lib/modules/datasource/npm/npmrc.ts
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,6 @@ export function resolveRegistryUrl(packageName: string): string {
packageName.startsWith(matchPackagePrefixes[0])
) {
// TODO: fix types #7154
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
registryUrl = registryUrls![0];
}
}
Expand Down
1 change: 0 additions & 1 deletion lib/modules/datasource/packagist/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -274,7 +274,6 @@ export class PackagistDatasource extends Datasource {
if (name in providerPackages) {
pkgUrl = URL.resolve(
regUrl,
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
providersUrl!
.replace('%package%', name)
.replace('%hash%', providerPackages[name])
Expand Down
3 changes: 1 addition & 2 deletions lib/modules/datasource/rubygems/get-rubygems-org.ts
Original file line number Diff line number Diff line change
Expand Up @@ -119,8 +119,7 @@ export class RubyGemsOrgDatasource extends Datasource {
async syncVersions(): Promise<void> {
if (RubyGemsOrgDatasource.isDataStale()) {
this.updateRubyGemsVersionsPromise =
// eslint-disable-next-line @typescript-eslint/no-misused-promises
this.updateRubyGemsVersionsPromise || this.updateRubyGemsVersions();
this.updateRubyGemsVersionsPromise ?? this.updateRubyGemsVersions();
await this.updateRubyGemsVersionsPromise;
this.updateRubyGemsVersionsPromise = null;
}
Expand Down
1 change: 0 additions & 1 deletion lib/modules/manager/batect-wrapper/artifacts.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@ export async function updateArtifacts({
packageFileName,
config,
}: UpdateArtifact): Promise<UpdateArtifactsResult[] | null> {
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
const version = config.newVersion!;

logger.debug({ version, packageFileName }, 'Updating Batect wrapper scripts');
Expand Down
1 change: 0 additions & 1 deletion lib/modules/manager/batect/extract.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,6 @@ describe('modules/manager/batect/extract', () => {

// TODO: #7154
expect(
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
result?.sort((a, b) => a.packageFile!.localeCompare(b.packageFile!))
).toEqual([
{
Expand Down
1 change: 0 additions & 1 deletion lib/modules/manager/batect/extract.ts
Original file line number Diff line number Diff line change
Expand Up @@ -161,7 +161,6 @@ export async function extractAllPackageFiles(

const content = await readLocalFile(packageFile, 'utf8');
// TODO #7154
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
const result = extractPackageFile(content!, packageFile);

if (result !== null) {
Expand Down
1 change: 0 additions & 1 deletion lib/modules/manager/composer/extract.ts
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,6 @@ function parseRepositories(
switch (repo.type) {
case 'vcs':
case 'git':
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
repositories[name!] = repo;
break;
case 'composer':
Expand Down
1 change: 0 additions & 1 deletion lib/modules/manager/composer/update-locked.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ export function updateLockedDependency(
`composer.updateLockedDependency: ${depName}@${currentVersion} -> ${newVersion} [${lockFile}]`
);
try {
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
const locked = JSON.parse(lockFileContent!) as ComposerLock;
if (
locked.packages?.find(
Expand Down
4 changes: 1 addition & 3 deletions lib/modules/manager/composer/utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,8 @@ export function getComposerArguments(

if (config.composerIgnorePlatformReqs) {
if (config.composerIgnorePlatformReqs.length === 0) {
// TODO: toolConstraint.constraint can be null or undefined?
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
// TODO: toolConstraint.constraint can be null or undefined? (#7154)
const major = api.getMajor(toolConstraint.constraint!);
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
const minor = api.getMinor(toolConstraint.constraint!);
args += api.matches(`${major}.${minor}`, '^2.2')
? " --ignore-platform-req='ext-*' --ignore-platform-req='lib-*'"
Expand Down
1 change: 0 additions & 1 deletion lib/modules/manager/flux/extract.ts
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,6 @@ export async function extractAllPackageFiles(
for (const file of packageFiles) {
const content = await readLocalFile(file, 'utf8');
// TODO #7154
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
const manifest = readManifest(content!, file);
if (manifest) {
manifests.push(manifest);
Expand Down
3 changes: 1 addition & 2 deletions lib/modules/manager/git-submodules/artifacts.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,8 @@ export default function updateArtifacts({
}: UpdateArtifact): UpdateArtifactsResult[] | null {
const res: UpdateArtifactsResult[] = [];
updatedDeps.forEach((dep) => {
logger.info('Updating submodule ' + dep.depName);
logger.info(`Updating submodule ${dep.depName}`);
res.push({
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
file: { type: 'addition', path: dep.depName!, contents: '' },
});
});
Expand Down
2 changes: 0 additions & 2 deletions lib/modules/manager/git-submodules/update.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,7 @@ export default async function updateDependency({
const submoduleGit = Git(upath.join(localDir, upgrade.depName));

try {
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
await git.submoduleUpdate(['--init', upgrade.depName!]);
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
await submoduleGit.checkout([upgrade.newDigest!]);
return fileContent;
} catch (err) {
Expand Down
1 change: 0 additions & 1 deletion lib/modules/manager/gitlabci/extract.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,6 @@ describe('modules/manager/gitlabci/extract', () => {
expect(deps).toHaveLength(8);

// TODO #7154
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
expect(deps.some((dep) => dep.currentValue!.includes("'"))).toBeFalse();
});

Expand Down

0 comments on commit e5c6f38

Please sign in to comment.