summaryrefslogtreecommitdiff
path: root/packages/astro-rss/src/schema.ts
blob: 98aa35f8121237b09be34bf28b8c53df30c50e84 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import { z } from 'astro/zod';

export const rssSchema = z.object({
	title: z.string(),
	pubDate: z
		.union([z.string(), z.number(), z.date()])
		.transform((value) => new Date(value))
		.refine((value) => !isNaN(value.getTime())),
	description: z.string().optional(),
	customData: z.string().optional(),
	categories: z.array(z.string()).optional(),
	author: z.string().optional(),
	commentsUrl: z.string().optional(),
	source: z.object({ url: z.string().url(), title: z.string() }).optional(),
	enclosure: z
		.object({
			url: z.string(),
			length: z.number().positive().int().finite(),
			type: z.string(),
		})
		.optional(),
});