0
Fork 0
mirror of https://github.com/withastro/astro.git synced 2025-01-27 22:19:04 -05:00
astro/packages/astro-rss/src/schema.ts
Armand Philippot 50dd88bc66
fix(@astrojs/rss): prevent an error when pubDate is missing (#12137)
* fix(rss): prevent error when `pubDate` is missing

* docs(rss): switch some RSS items to optional
2024-10-07 11:42:19 -04:00

25 lines
727 B
TypeScript

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(),
});