Files
Sebastian Poxhofer 15f4bd8eff chore: migrate from zod/v3 to zod/v4 (#43691)
* 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
2026-05-30 16:01:58 +00:00

30 lines
966 B
TypeScript

import { z } from 'zod/v4';
import { LooseArray } from '../../../util/schema-utils/index.ts';
import { asTimestamp } from '../../../util/timestamp.ts';
import type { ReleaseResult } from '../types.ts';
const ReleaseItem = z
.object({
name: z.string().min(1),
version: z.string().min(1),
repository: z.string().url(),
updatedAt: z.number(),
})
.transform(
({ name: packageName, version, repository: sourceUrl, updatedAt }) => {
const releaseTimestamp = asTimestamp(updatedAt);
return { packageName, version, sourceUrl, releaseTimestamp };
},
);
export const Registry = LooseArray(ReleaseItem).transform((items) => {
const result: Record<string, ReleaseResult> = {};
for (const item of items) {
const { packageName, sourceUrl, ...release } = item;
result[packageName] ??= { releases: [] };
result[packageName].releases.push(release);
result[packageName].sourceUrl = sourceUrl;
}
return result;
});