feat: add image validation to schema

This commit is contained in:
tanishqmanuja
2023-09-20 14:55:29 +05:30
committed by Sat Naing
parent 817e67ac65
commit e9d4303219
+17 -12
View File
@@ -2,18 +2,23 @@ import { defineCollection, z } from "astro:content";
const blog = defineCollection({
type: "content",
schema: z.object({
author: z.string().optional(),
pubDatetime: z.date(),
title: z.string(),
postSlug: z.string().optional(),
featured: z.boolean().optional(),
draft: z.boolean().optional(),
tags: z.array(z.string()).default(["others"]),
ogImage: z.string().optional(),
description: z.string(),
canonicalURL: z.string().optional(),
}),
schema: ({ image }) =>
z.object({
author: z.string().optional(),
pubDatetime: z.date(),
title: z.string(),
postSlug: z.string().optional(),
featured: z.boolean().optional(),
draft: z.boolean().optional(),
tags: z.array(z.string()).default(["others"]),
ogImage: image()
.refine(img => img.width >= 1200 && img.height >= 630, {
message: "OpenGraph image must be at least 1200 X 630 pixels!",
})
.optional(),
description: z.string(),
canonicalURL: z.string().optional(),
}),
});
export const collections = { blog };