mirror of
https://github.com/renovatebot/renovate.git
synced 2026-11-01 18:19:51 +00:00
930cf6633c
fix: Additional vi.mock path corrections and prettier formatting
45 lines
1.3 KiB
TypeScript
45 lines
1.3 KiB
TypeScript
import { assignKeys } from '../../../util/assign-keys.ts';
|
|
import type { Http, SafeJsonError } from '../../../util/http/index.ts';
|
|
import type { AsyncResult } from '../../../util/result.ts';
|
|
import { joinUrlParts as join } from '../../../util/url.ts';
|
|
import type { ReleaseResult } from '../types.ts';
|
|
import { GemMetadata, GemVersions } from './schema.ts';
|
|
|
|
export function assignMetadata(
|
|
releases: ReleaseResult,
|
|
metadata: GemMetadata,
|
|
): ReleaseResult {
|
|
return assignKeys(releases, metadata, [
|
|
'changelogUrl',
|
|
'sourceUrl',
|
|
'homepage',
|
|
]);
|
|
}
|
|
|
|
export function getV1Metadata(
|
|
http: Http,
|
|
registryUrl: string,
|
|
packageName: string,
|
|
): AsyncResult<GemMetadata, SafeJsonError> {
|
|
const metadataUrl = join(registryUrl, '/api/v1/gems', `${packageName}.json`);
|
|
return http.getJsonSafe(metadataUrl, GemMetadata);
|
|
}
|
|
|
|
export function getV1Releases(
|
|
http: Http,
|
|
registryUrl: string,
|
|
packageName: string,
|
|
): AsyncResult<ReleaseResult, SafeJsonError | 'unsupported-api'> {
|
|
const versionsUrl = join(
|
|
registryUrl,
|
|
'/api/v1/versions',
|
|
`${packageName}.json`,
|
|
);
|
|
|
|
return http.getJsonSafe(versionsUrl, GemVersions).transform((releaseResult) =>
|
|
getV1Metadata(http, registryUrl, packageName)
|
|
.transform((metadata) => assignMetadata(releaseResult, metadata))
|
|
.unwrapOr(releaseResult),
|
|
);
|
|
}
|