From 01acc901e8a4c0668a1039990030c84119ae3556 Mon Sep 17 00:00:00 2001 From: Erika <3019731+Princesseuh@users.noreply.github.com> Date: Tue, 20 Aug 2024 14:28:52 +0200 Subject: [PATCH] Deprecate the Squoosh image service (#11780) --- .changeset/fair-rats-fail.md | 5 +++++ packages/astro/config.d.ts | 3 +++ packages/astro/src/assets/services/squoosh.ts | 10 ++++++++-- 3 files changed, 16 insertions(+), 2 deletions(-) create mode 100644 .changeset/fair-rats-fail.md diff --git a/.changeset/fair-rats-fail.md b/.changeset/fair-rats-fail.md new file mode 100644 index 0000000000000..b93bc8a2b5aa5 --- /dev/null +++ b/.changeset/fair-rats-fail.md @@ -0,0 +1,5 @@ +--- +'astro': patch +--- + +Deprecates the Squoosh image service, to be removed in Astro 5.0. We recommend migrating to the default Sharp service. diff --git a/packages/astro/config.d.ts b/packages/astro/config.d.ts index 675c783a191d1..a6f1191e04fe8 100644 --- a/packages/astro/config.d.ts +++ b/packages/astro/config.d.ts @@ -26,6 +26,9 @@ export function getViteConfig( export function sharpImageService(config?: SharpImageServiceConfig): ImageServiceConfig; /** + * @deprecated The Squoosh image service is deprecated and will be removed in Astro 5.x. + * We suggest migrating to the default Sharp image service instead, as it is faster, more powerful and better maintained. + * * Return the configuration needed to use the Squoosh-based image service * See: https://docs.astro.build/en/guides/images/#configure-squoosh */ diff --git a/packages/astro/src/assets/services/squoosh.ts b/packages/astro/src/assets/services/squoosh.ts index 6eb78db4b2ee5..b98f831d27a9b 100644 --- a/packages/astro/src/assets/services/squoosh.ts +++ b/packages/astro/src/assets/services/squoosh.ts @@ -1,5 +1,4 @@ -// TODO: Investigate removing this service once sharp lands WASM support, as libsquoosh is deprecated - +import { yellow } from 'kleur/colors'; import type { ImageOutputFormat, ImageQualityPreset } from '../types.js'; import { imageMetadata } from '../utils/metadata.js'; import { @@ -11,6 +10,13 @@ import { import { processBuffer } from './vendor/squoosh/image-pool.js'; import type { Operation } from './vendor/squoosh/image.js'; +// eslint-disable-next-line no-console +console.warn( + yellow( + 'The Squoosh image service is deprecated and will be removed in Astro 5.x. We suggest migrating to the default Sharp image service instead, as it is faster, more powerful and better maintained.', + ), +); + const baseQuality = { low: 25, mid: 50, high: 80, max: 100 }; const qualityTable: Record< Exclude,