[go: up one dir, main page]

Skip to navigation Skip to main content
Eleventy
Eleventy Documentation
Stable
3.0.0
Toggle Menu
Eleventy 5.81s
Gatsby 43.36s

Validate Data

Use the special eleventyDataSchema data property to validate data in your Data Cascade. You can set this anywhere in your Data Cascade (front matter, directory data file, global data, etc).

You can use any schema or validation library to achieve this. In this example, we’re using zod.

Example: Checking that draft is boolean

In the following example, each content template with an eleventyDataSchema callback (in this example, any templates in the blog folder) is checked to make sure the value of any draft assignments must be boolean or undefined. If not, we throw an error.

blog/blog.11tydata.js
import { z } from "zod";
import { fromZodError } from 'zod-validation-error';

export default {
eleventyDataSchema: function(data) {
let result = z.object({
draft: z.boolean().or(z.undefined()),
}).safeParse(data);

if(result.error) {
throw fromZodError(result.error);
}
}
};

Other pages in Data Cascade: