Skip to content

Commit

Permalink
refactor: don't throw errors from datasource package releases lookup (#…
Browse files Browse the repository at this point in the history
  • Loading branch information
rarkins committed Jun 30, 2023
1 parent 6161d06 commit 930fc9f
Show file tree
Hide file tree
Showing 4 changed files with 38 additions and 3 deletions.
13 changes: 13 additions & 0 deletions lib/modules/datasource/index.ts
Expand Up @@ -19,6 +19,8 @@ import type {
DigestConfig,
GetDigestInputConfig,
GetPkgReleasesConfig,
GetPkgReleasesResultError,
GetPkgReleasesResultSuccess,
GetReleasesConfig,
ReleaseResult,
} from './types';
Expand Down Expand Up @@ -429,6 +431,17 @@ export async function getPkgReleases(
return res;
}

export async function getPkgReleasesWithResult(
config: GetPkgReleasesConfig
): Promise<GetPkgReleasesResultSuccess | GetPkgReleasesResultError> {
try {
const result = await getPkgReleases(config);
return { result };
} catch (error) {
return { error };
}
}

export function supportsDigests(datasource: string | undefined): boolean {
const ds = !!datasource && getDatasourceFor(datasource);
return !!ds && 'getDigest' in ds;
Expand Down
10 changes: 10 additions & 0 deletions lib/modules/datasource/types.ts
Expand Up @@ -74,6 +74,16 @@ export interface ReleaseResult {
replacementVersion?: string;
}

export interface GetPkgReleasesResultError {
error: Error;
result?: never;
}

export interface GetPkgReleasesResultSuccess {
error?: never;
result: ReleaseResult | null;
}

export type RegistryStrategy = 'first' | 'hunt' | 'merge';

export interface DatasourceApi extends ModuleApi {
Expand Down
9 changes: 9 additions & 0 deletions lib/workers/repository/process/lookup/index.spec.ts
Expand Up @@ -89,6 +89,15 @@ describe('workers/repository/process/lookup/index', () => {
expect((await lookup.lookupUpdates(config)).updates).toEqual([]);
});

it('handles error result from getPkgReleasesWithResult', async () => {
config.currentValue = '1.0.0';
config.packageName = 'some-dep';
config.datasource = NpmDatasource.id;
config.rollbackPrs = true;
httpMock.scope('https://registry.npmjs.org').get('/some-dep').reply(500);
await expect(lookup.lookupUpdates(config)).rejects.toThrow();
});

it('returns rollback for pinned version', async () => {
config.currentValue = '0.9.99';
config.packageName = 'q';
Expand Down
9 changes: 6 additions & 3 deletions lib/workers/repository/process/lookup/index.ts
Expand Up @@ -9,7 +9,7 @@ import {
getDatasourceList,
getDefaultVersioning,
getDigest,
getPkgReleases,
getPkgReleasesWithResult,
isGetPkgReleasesConfig,
supportsDigests,
} from '../../../../modules/datasource';
Expand Down Expand Up @@ -82,8 +82,11 @@ export async function lookupUpdates(
res.skipReason = 'is-pinned';
return res;
}

dependency = clone(await getPkgReleases(config));
const lookupResult = await getPkgReleasesWithResult(config);
if (lookupResult.error) {
throw lookupResult.error;
}
dependency = clone(lookupResult.result);
if (!dependency) {
// If dependency lookup fails then warn and return
const warning: ValidationMessage = {
Expand Down

0 comments on commit 930fc9f

Please sign in to comment.