diff --git a/.changeset/forty-peaches-talk.md b/.changeset/forty-peaches-talk.md new file mode 100644 index 000000000000..2be4e471ece6 --- /dev/null +++ b/.changeset/forty-peaches-talk.md @@ -0,0 +1,6 @@ +--- +'@astrojs/cloudflare': patch +'@astrojs/netlify': patch +--- + +Unify imported images detection across adapters diff --git a/packages/integrations/cloudflare/src/entrypoints/image-service.ts b/packages/integrations/cloudflare/src/entrypoints/image-service.ts index d4cf8ff932ca..1c3aa5758458 100644 --- a/packages/integrations/cloudflare/src/entrypoints/image-service.ts +++ b/packages/integrations/cloudflare/src/entrypoints/image-service.ts @@ -2,7 +2,8 @@ import type { ExternalImageService } from 'astro'; import { joinPaths } from '@astrojs/internal-helpers/path'; import { baseService } from 'astro/assets'; -import { isESMImportedImage, isRemoteAllowed } from '../utils/assets.js'; +import { isESMImportedImage } from 'astro/assets/utils'; +import { isRemoteAllowed } from '../utils/assets.js'; const service: ExternalImageService = { ...baseService, diff --git a/packages/integrations/cloudflare/src/utils/assets.ts b/packages/integrations/cloudflare/src/utils/assets.ts index 2e6094aa8416..4b784f865a98 100644 --- a/packages/integrations/cloudflare/src/utils/assets.ts +++ b/packages/integrations/cloudflare/src/utils/assets.ts @@ -1,9 +1,6 @@ import { isRemotePath } from '@astrojs/internal-helpers/path'; -import type { AstroConfig, ImageMetadata, RemotePattern } from 'astro'; +import type { AstroConfig, RemotePattern } from 'astro'; -export function isESMImportedImage(src: ImageMetadata | string): src is ImageMetadata { - return typeof src === 'object'; -} function matchHostname(url: URL, hostname?: string, allowWildcard?: boolean) { if (!hostname) { return true; diff --git a/packages/integrations/netlify/src/image-service.ts b/packages/integrations/netlify/src/image-service.ts index 1e1f571f8d64..0e03aeb35a7b 100644 --- a/packages/integrations/netlify/src/image-service.ts +++ b/packages/integrations/netlify/src/image-service.ts @@ -1,14 +1,11 @@ -import type { ExternalImageService, ImageMetadata } from 'astro'; +import type { ExternalImageService } from 'astro'; import { baseService } from 'astro/assets'; +import { isESMImportedImage } from 'astro/assets/utils'; import { AstroError } from 'astro/errors'; const SUPPORTED_FORMATS = ['avif', 'jpg', 'png', 'webp']; const QUALITY_NAMES: Record = { low: 25, mid: 50, high: 90, max: 100 }; -export function isESMImportedImage(src: ImageMetadata | string): src is ImageMetadata { - return typeof src === 'object'; -} - function removeLeadingForwardSlash(path: string) { return path.startsWith('/') ? path.substring(1) : path; }