From 8450379db854fb1eaa9f38f21d65db240bc616cd Mon Sep 17 00:00:00 2001 From: Erika <3019731+Princesseuh@users.noreply.github.com> Date: Tue, 29 Aug 2023 17:54:24 +0200 Subject: [PATCH] fix: settings requiring service to be set when settings domains or remotePatterns (#8266) --- .changeset/many-impalas-sit.md | 5 +++++ packages/astro/src/core/config/schema.ts | 27 ++++++++++++++---------- 2 files changed, 21 insertions(+), 11 deletions(-) create mode 100644 .changeset/many-impalas-sit.md diff --git a/.changeset/many-impalas-sit.md b/.changeset/many-impalas-sit.md new file mode 100644 index 000000000000..ad48de4f3901 --- /dev/null +++ b/.changeset/many-impalas-sit.md @@ -0,0 +1,5 @@ +--- +'astro': patch +--- + +Fix `image.service` requiring to be set manually when `image.domains` or `image.remotePatterns` was assigned a value diff --git a/packages/astro/src/core/config/schema.ts b/packages/astro/src/core/config/schema.ts index 21d15314336d..46ed2a01f897 100644 --- a/packages/astro/src/core/config/schema.ts +++ b/packages/astro/src/core/config/schema.ts @@ -29,6 +29,9 @@ const ASTRO_CONFIG_DEFAULTS = { split: false, excludeMiddleware: false, }, + image: { + service: { entrypoint: 'astro/assets/services/sharp', config: {} }, + }, compressHTML: true, server: { host: false, @@ -180,14 +183,18 @@ export const AstroConfigSchema = z.object({ .default(ASTRO_CONFIG_DEFAULTS.redirects), image: z .object({ - service: z.object({ - entrypoint: z.union([ - z.literal('astro/assets/services/sharp'), - z.literal('astro/assets/services/squoosh'), - z.string(), - ]), - config: z.record(z.any()).default({}), - }), + service: z + .object({ + entrypoint: z + .union([ + z.literal('astro/assets/services/sharp'), + z.literal('astro/assets/services/squoosh'), + z.string(), + ]) + .default(ASTRO_CONFIG_DEFAULTS.image.service.entrypoint), + config: z.record(z.any()).default({}), + }) + .default(ASTRO_CONFIG_DEFAULTS.image.service), domains: z.array(z.string()).default([]), remotePatterns: z .array( @@ -213,9 +220,7 @@ export const AstroConfigSchema = z.object({ ) .default([]), }) - .default({ - service: { entrypoint: 'astro/assets/services/sharp', config: {} }, - }), + .default(ASTRO_CONFIG_DEFAULTS.image), markdown: z .object({ drafts: z.boolean().default(false),