Skip to navigation Skip to main content
Back the Build Awesome Kickstarter!

The same static site generator you know and love, now with endless Pro 'possum-bilities. But just like other parts of the Awesomeverse, Build Awesome will continue to be free and open source.

Support the Kickstarter!

Validate Data Added in v3.0.0

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 Using Data