Files
Sebastian Poxhofer 914c64afbd test(linter): zod schema and infered type naming rule (#43736)
* ci: add linting rule for schema and infered types

* refactor: remove usages of Schema and differently named types
2026-06-02 12:07:35 +00:00

22 lines
687 B
TypeScript

import { z } from 'zod/v4';
import { asTimestamp } from '../../../util/timestamp.ts';
import type { ReleaseResult } from '../types.ts';
/**
* Response from package.elm-lang.org/packages/{author}/{package}/releases.json
* Maps version strings to Unix timestamps
*/
export const ElmPackageReleases = z
.record(z.string(), z.number())
.refine((obj) => Object.keys(obj).length > 0, 'No releases found')
.transform((releases): ReleaseResult => {
return {
releases: Object.entries(releases).map(([version, timestamp]) => ({
version,
releaseTimestamp: asTimestamp(timestamp),
})),
};
});
export type ElmPackageReleases = Record<string, number>;