summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.changeset/eleven-eyes-jog.md5
-rw-r--r--packages/astro/src/core/config/schema.ts21
2 files changed, 25 insertions, 1 deletions
diff --git a/.changeset/eleven-eyes-jog.md b/.changeset/eleven-eyes-jog.md
new file mode 100644
index 000000000..ebd4b4fe1
--- /dev/null
+++ b/.changeset/eleven-eyes-jog.md
@@ -0,0 +1,5 @@
+---
+'astro': patch
+---
+
+Fix redirects map object-form value validation
diff --git a/packages/astro/src/core/config/schema.ts b/packages/astro/src/core/config/schema.ts
index 16bfbbac7..70c9e03a7 100644
--- a/packages/astro/src/core/config/schema.ts
+++ b/packages/astro/src/core/config/schema.ts
@@ -149,7 +149,26 @@ export const AstroConfigSchema = z.object({
.optional()
.default({})
),
- redirects: z.record(z.string(), z.string()).default(ASTRO_CONFIG_DEFAULTS.redirects),
+ redirects: z
+ .record(
+ z.string(),
+ z.union([
+ z.string(),
+ z.object({
+ status: z.union([
+ z.literal(300),
+ z.literal(301),
+ z.literal(302),
+ z.literal(303),
+ z.literal(304),
+ z.literal(307),
+ z.literal(308),
+ ]),
+ destination: z.string(),
+ }),
+ ])
+ )
+ .default(ASTRO_CONFIG_DEFAULTS.redirects),
image: z
.object({
service: z.object({