mirror of
https://github.com/renovatebot/renovate.git
synced 2026-10-27 07:50:47 +00:00
15f4bd8eff
* chore: migrate from zod/v3 to zod/v4 This commit contains the logic changes * chore: migrate imports from zod/v3 to zod/v4 This contains import updates and adds explicit record keys as zod/v4 requires these now * ci: enforce usage of zod/v4
45 lines
1.3 KiB
TypeScript
45 lines
1.3 KiB
TypeScript
import { z } from 'zod/v4';
|
|
import { LooseArray, multidocYaml } from '../../../util/schema-utils/index.ts';
|
|
|
|
export const KubernetesResource = z.object({
|
|
apiVersion: z.string(),
|
|
});
|
|
|
|
export const ApplicationKustomize = z.object({
|
|
images: LooseArray(z.string()).optional(),
|
|
});
|
|
export const ApplicationSource = z.object({
|
|
chart: z.string().optional(),
|
|
repoURL: z.string(),
|
|
targetRevision: z.string(),
|
|
kustomize: ApplicationKustomize.optional(),
|
|
});
|
|
export type ApplicationSource = z.infer<typeof ApplicationSource>;
|
|
|
|
export const ApplicationSpec = z.object({
|
|
source: ApplicationSource.optional(),
|
|
sources: LooseArray(ApplicationSource).optional(),
|
|
});
|
|
export type ApplicationSpec = z.infer<typeof ApplicationSpec>;
|
|
|
|
export const Application = KubernetesResource.extend({
|
|
kind: z.literal('Application'),
|
|
spec: ApplicationSpec,
|
|
});
|
|
|
|
export const ApplicationSet = KubernetesResource.extend({
|
|
kind: z.literal('ApplicationSet'),
|
|
spec: z.object({
|
|
template: z.object({
|
|
spec: ApplicationSpec,
|
|
}),
|
|
}),
|
|
});
|
|
|
|
export const ApplicationDefinition = Application.or(ApplicationSet);
|
|
export type ApplicationDefinition = z.infer<typeof ApplicationDefinition>;
|
|
|
|
export const ApplicationDefinitions = multidocYaml({
|
|
removeTemplates: true,
|
|
}).pipe(LooseArray(ApplicationDefinition));
|