renovate
Version:
Automated dependency updates. Flexible so you don't need to be.
32 lines (31 loc) • 1.75 kB
JavaScript
import { trimLeadingSlash } from "../../../util/url.js";
import { toArray } from "../../../util/array.js";
import { LooseArray, LooseRecord } from "../../../util/schema-utils/index.js";
import { z } from "zod/v4";
//#region lib/modules/manager/gitlabci/schema.ts
const LocalInclude = z.union([z.string(), z.object({ local: z.string() }).transform(({ local }) => local)]).transform(trimLeadingSlash);
const MultiDocumentLocalIncludes = LooseArray(z.object({ include: z.union([LooseArray(LocalInclude), LocalInclude.transform(toArray)]) }).transform(({ include }) => include)).transform((includes) => includes.flat());
const Job = z.object({
image: z.union([z.string().transform((image) => ({
type: "image",
value: image
})), z.object({ name: z.string() }).transform(({ name }) => ({
type: "image-name",
value: name
}))]).optional().catch(void 0),
services: LooseArray(z.union([z.string(), z.object({ name: z.string() }).transform(({ name }) => name)])).catch([])
});
const Jobs = LooseRecord(z.string(), Job).catch({}).transform((x) => Object.values(x));
const GitlabInclude = z.object({ component: z.string() }).transform(({ component }) => component);
const GitlabIncludes = z.union([LooseArray(GitlabInclude), GitlabInclude.transform(toArray)]).catch([]);
const GitlabDocument = z.record(z.string(), z.unknown()).transform((obj) => {
const { include, ...rest } = obj;
return {
include,
children: Object.values(rest)
};
}).transform(({ include, children }) => [...GitlabDocumentArray.parse(children), ...GitlabIncludes.parse(include)]);
const GitlabDocumentArray = LooseArray(GitlabDocument).transform((x) => x.flat());
//#endregion
export { GitlabDocument, Job, Jobs, MultiDocumentLocalIncludes };
//# sourceMappingURL=schema.js.map