UNPKG

astro

Version:

Astro is a modern site builder with web best practices, performance, and DX front-of-mind.

20 lines (19 loc) • 1.01 kB
import * as z from "zod/v4"; import { validateAssetsPrefix, validateFontsCssVariables, validateI18nDefaultLocale, validateI18nDomains, validateI18nFallback, validateI18nRedirectToDefaultLocale, validateOutDirNotInPublicDir, validateRemotePatterns } from "./refined-validators.js"; export const AstroConfigRefinedSchema = z.custom().superRefine((config, ctx) => { let issues = []; issues = issues.concat(validateAssetsPrefix(config), validateRemotePatterns(config.image.remotePatterns), validateI18nRedirectToDefaultLocale(config.i18n), validateOutDirNotInPublicDir(config.outDir, config.publicDir)); if (config.i18n) { issues = issues.concat(validateI18nDefaultLocale(config.i18n), validateI18nFallback(config.i18n), validateI18nDomains(config)); } if (config.fonts && config.fonts.length > 0) { issues = issues.concat(validateFontsCssVariables(config.fonts)); } for (const issue of issues) { ctx.addIssue({ code: z.ZodIssueCode.custom, message: issue.message, path: issue.path }); } });