diff options
Diffstat (limited to 'packages/astro-rss/src/schema.ts')
-rw-r--r-- | packages/astro-rss/src/schema.ts | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/packages/astro-rss/src/schema.ts b/packages/astro-rss/src/schema.ts new file mode 100644 index 000000000..c4a0fec3f --- /dev/null +++ b/packages/astro-rss/src/schema.ts @@ -0,0 +1,25 @@ +import { z } from 'astro/zod'; + +export const rssSchema = z.object({ + title: z.string().optional(), + description: z.string().optional(), + pubDate: z + .union([z.string(), z.number(), z.date()]) + .transform((value) => new Date(value)) + .refine((value) => !isNaN(value.getTime())) + .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().nonnegative().int().finite(), + type: z.string(), + }) + .optional(), + link: z.string().optional(), + content: z.string().optional(), +}); |