UNPKG

astro

Version:

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

41 lines (40 loc) 1.13 kB
import * as z from "zod/v4"; import { validateAssetsPrefix, validateFontsCssVariables, validateI18nDefaultLocale, validateI18nDomains, validateI18nFallback, validateI18nRedirectToDefaultLocale, validateOutDirNotInPublicDir, validateRemotePatterns } from "./refined-validators.js"; 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 }); } }); export { AstroConfigRefinedSchema };