Files
renovate/lib/modules/datasource/java-version/common.ts
T
Sergei Zharinov 930cf6633c refactor: Rewrite imports with .ts extensions (#40700)
fix: Additional vi.mock path corrections and prettier formatting
2026-01-26 22:48:17 +00:00

77 lines
1.8 KiB
TypeScript

import { logger } from '../../../logger/index.ts';
import type { Nullish } from '../../../types/index.ts';
import { trimLeadingSlash } from '../../../util/url.ts';
import type { PackageConfig } from './types.ts';
// Api page size limit 50
export const pageSize = 50;
export const defaultRegistryUrl = 'https://api.adoptium.net/';
export const datasource = 'java-version';
export function parsePackage(packageName: string): PackageConfig {
const u = new URL(packageName, defaultRegistryUrl);
const useSystem = u.searchParams.get('system') === 'true';
return {
imageType: getImageType(trimLeadingSlash(u.pathname)),
architecture:
u.searchParams.get('architecture') ?? getSystemArchitecture(useSystem),
os: u.searchParams.get('os') ?? getSystemOs(useSystem),
};
}
function getImageType(name: string): string {
switch (name) {
case 'java-jre':
return 'jre';
default:
return 'jdk';
}
}
function getSystemArchitecture(useSystem: boolean): Nullish<string> {
if (!useSystem) {
return null;
}
switch (process.arch) {
case 'ia32':
return 'x86';
case 'arm64':
return 'aarch64';
case 'arm':
case 'riscv64':
case 's390x':
case 'x64':
return process.arch;
default:
logger.warn(
{ arch: process.arch },
'Unknown system architecture, defaulting to null',
);
return null;
}
}
function getSystemOs(useSystem: boolean): Nullish<string> {
if (!useSystem) {
return null;
}
switch (process.platform) {
case 'darwin':
return 'mac';
case 'win32':
return 'windows';
case 'aix':
case 'linux':
return process.platform;
default:
logger.warn(
{ os: process.platform },
'Unknown system OS, defaulting to null',
);
return null;
}
}