Select Git revision
-
Rhys Arkins authored
Co-Authored-By:
Michael Kriese <michael.kriese@visualon.de>
Rhys Arkins authoredCo-Authored-By:
Michael Kriese <michael.kriese@visualon.de>
maven.ts 1.32 KiB
import is from '@sindresorhus/is';
import { z } from 'zod';
import { MavenDatasource } from '../../../datasource/maven';
import type { PackageDependency } from '../../types';
export const mavenRules = ['maven_install'] as const;
const ArtifactSpec = z.object({
group: z.string(),
artifact: z.string(),
version: z.string(),
});
type ArtifactSpec = z.infer<typeof ArtifactSpec>;
export const MavenTarget = z
.object({
rule: z.enum(mavenRules),
artifacts: z
.union([z.string(), ArtifactSpec])
.array()
.transform((xs) => {
const result: ArtifactSpec[] = [];
for (const x of xs) {
if (is.string(x)) {
const [group, artifact, version] = x.split(':');
if (group && artifact && version) {
result.push({ group, artifact, version });
}
} else {
result.push(x);
}
}
return result;
}),
repositories: z.array(z.string()).optional(),
})
.transform(
({
rule: depType,
artifacts,
repositories: registryUrls,
}): PackageDependency[] =>
artifacts.map(({ group, artifact, version: currentValue }) => ({
datasource: MavenDatasource.id,
depName: `${group}:${artifact}`,
currentValue,
depType,
registryUrls,
}))
);