diff --git a/lib/datasource/sbt-package/index.ts b/lib/datasource/sbt-package/index.ts index 5c889fa487528166113248de1659f797158e2eea..19df8ed91ce3112e6f217b17488ff5922ca47d68 100644 --- a/lib/datasource/sbt-package/index.ts +++ b/lib/datasource/sbt-package/index.ts @@ -19,7 +19,7 @@ export async function getArtifactSubdirs( searchRoot: string, artifact: string, scalaVersion: string -): Promise<string[]> { +): Promise<string[] | null> { const { body: indexContent } = await downloadHttpProtocol( ensureTrailingSlash(searchRoot), 'sbt' @@ -53,8 +53,8 @@ export async function getArtifactSubdirs( export async function getPackageReleases( searchRoot: string, - artifactSubdirs: string[] -): Promise<string[]> { + artifactSubdirs: string[] | null +): Promise<string[] | null> { if (artifactSubdirs) { const releases: string[] = []; const parseReleases = (content: string): string[] => @@ -77,7 +77,7 @@ export async function getPackageReleases( return null; } -export function getLatestVersion(versions: string[]): string | null { +export function getLatestVersion(versions: string[] | null): string | null { if (versions?.length) { return versions.reduce((latestVersion, version) => compare(version, latestVersion) === 1 ? version : latestVersion @@ -88,8 +88,8 @@ export function getLatestVersion(versions: string[]): string | null { export async function getUrls( searchRoot: string, - artifactDirs: string[], - version: string + artifactDirs: string[] | null, + version: string | null ): Promise<Partial<ReleaseResult>> { const result: Partial<ReleaseResult> = {}; @@ -141,6 +141,11 @@ export async function getReleases({ lookupName, registryUrl, }: GetReleasesConfig): Promise<ReleaseResult | null> { + // istanbul ignore if + if (!registryUrl) { + return null; + } + const [groupId, artifactId] = lookupName.split(':'); const groupIdSplit = groupId.split('.'); const artifactIdSplit = artifactId.split('_'); diff --git a/lib/datasource/sbt-plugin/index.ts b/lib/datasource/sbt-plugin/index.ts index 807e33c87f5d8381c6158a29e75243ee88293101..4a975f13a77ea686009779cf2a14b935329c2a17 100644 --- a/lib/datasource/sbt-plugin/index.ts +++ b/lib/datasource/sbt-plugin/index.ts @@ -23,7 +23,7 @@ async function resolvePluginReleases( rootUrl: string, artifact: string, scalaVersion: string -): Promise<string[]> { +): Promise<string[] | null> { const searchRoot = `${rootUrl}/${artifact}`; const parse = (content: string): string[] => parseIndexDir(content, (x) => !regEx(/^\.+$/).test(x)); @@ -72,6 +72,11 @@ export async function getReleases({ lookupName, registryUrl, }: GetReleasesConfig): Promise<ReleaseResult | null> { + // istanbul ignore if + if (!registryUrl) { + return null; + } + const [groupId, artifactId] = lookupName.split(':'); const groupIdSplit = groupId.split('.'); const artifactIdSplit = artifactId.split('_'); diff --git a/lib/datasource/sbt-plugin/util.ts b/lib/datasource/sbt-plugin/util.ts index 3bbb5a25256f37cbb8b59c465e24836249894e76..364dfe6c083e5d143e6d5f0bdbcd636a68e66615 100644 --- a/lib/datasource/sbt-plugin/util.ts +++ b/lib/datasource/sbt-plugin/util.ts @@ -7,6 +7,6 @@ export function parseIndexDir( content: string, filterFn = (x: string): boolean => !regEx(/^\.+/).test(x) ): string[] { - const unfiltered = content.match(/(?<=href=['"])[^'"]*(?=\/['"])/g) || []; + const unfiltered = content.match(/(?<=href=['"])[^'"]*(?=\/['"])/g) ?? []; return unfiltered.filter(filterFn); } diff --git a/tsconfig.strict.json b/tsconfig.strict.json index 9b29d056b26ddea8402254e387146f0a0e6b45a3..a6360199ca6d55c7d87a4407f9a95dd6c2eaca77 100644 --- a/tsconfig.strict.json +++ b/tsconfig.strict.json @@ -82,7 +82,6 @@ "lib/datasource/aws-machine-image/index.ts", "lib/datasource/bitbucket-tags/index.ts", "lib/datasource/cdnjs/index.ts", - "lib/datasource/clojure/index.ts", "lib/datasource/crate/index.ts", "lib/datasource/datasource.ts", "lib/datasource/docker/common.ts", @@ -130,8 +129,6 @@ "lib/datasource/rubygems/get-rubygems-org.ts", "lib/datasource/rubygems/get.ts", "lib/datasource/rubygems/index.ts", - "lib/datasource/sbt-package/index.ts", - "lib/datasource/sbt-plugin/index.ts", "lib/datasource/terraform-module/base.ts", "lib/datasource/terraform-module/index.ts", "lib/datasource/terraform-provider/index.ts",