Files
renovate/lib/modules/manager/circleci/schema.ts
renovate[bot] 196101a6bb chore(deps): update dependency oxlint-tsgolint to v0.25.0 (main) (#44424)
* chore(deps): update dependency oxlint-tsgolint to v0.25.0

| datasource | package         | from   | to     |
| ---------- | --------------- | ------ | ------ |
| npm        | oxlint-tsgolint | 0.23.0 | 0.25.0 |

* chore: fix new no-unnecessary-type-assertion findings

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Sebastian Poxhofer <sebastian.poxhofer@stedi.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-07-28 07:04:21 +00:00

44 lines
1.1 KiB
TypeScript

import { z } from 'zod/v4';
import {
LooseArray,
LooseRecord,
NotCircular,
} from '../../../util/schema-utils/index.ts';
export const CircleCiDocker = z
.object({ image: z.string() })
.transform(({ image }) => image);
export const CircleCiJob = z
.object({
docker: LooseArray(CircleCiDocker).catch([]),
})
.transform(({ docker }) => docker);
export type CircleCiJob = z.infer<typeof CircleCiJob>;
const CircleCiJobList = LooseRecord(CircleCiJob)
.transform((x) => Object.values(x).flat())
.catch([]);
const BaseOrb = z.object({
executors: CircleCiJobList,
jobs: CircleCiJobList,
});
type Orb = z.infer<typeof BaseOrb> & {
orbs: Record<string, string | Orb>;
};
export const CircleCiOrb: z.ZodType<Orb> = BaseOrb.extend({
orbs: LooseRecord(z.union([z.string(), z.lazy(() => CircleCiOrb)])).catch({}),
});
export type CircleCiOrb = z.infer<typeof CircleCiOrb>;
export const CircleCiFile = NotCircular.pipe(
BaseOrb.extend({
aliases: LooseArray(CircleCiDocker).catch([]),
orbs: LooseRecord(z.union([z.string(), CircleCiOrb])).catch({}),
}),
);
export type CircleCiFile = z.infer<typeof CircleCiFile>;