From 77e688469e63c6f499b03290bcf0ca9ee5168b88 Mon Sep 17 00:00:00 2001 From: Princesseuh Date: Fri, 15 Sep 2023 13:12:44 +0200 Subject: [PATCH 1/3] fix(assets): Fix misc types issues --- packages/astro/client.d.ts | 12 +++--------- packages/astro/content-types.template.d.ts | 1 + packages/astro/src/assets/internal.ts | 2 +- packages/astro/src/assets/types.ts | 5 ++++- 4 files changed, 9 insertions(+), 11 deletions(-) diff --git a/packages/astro/client.d.ts b/packages/astro/client.d.ts index 146ab8355ecf..2dee0253c33c 100644 --- a/packages/astro/client.d.ts +++ b/packages/astro/client.d.ts @@ -48,9 +48,7 @@ declare module 'astro:assets' { * This is functionally equivalent to using the `` component, as the component calls this function internally. */ getImage: ( - options: - | import('./dist/assets/types.js').ImageTransform - | import('./dist/assets/types.js').UnresolvedImageTransform + options: import('./dist/assets/types.js').UnresolvedImageTransform ) => Promise; imageConfig: import('./dist/@types/astro.js').AstroConfig['image']; getConfiguredImageService: typeof import('./dist/assets/index.js').getConfiguredImageService; @@ -62,12 +60,8 @@ declare module 'astro:assets' { 'alt' >; - export type LocalImageProps = import('./dist/type-utils.js').Simplify< - import('./dist/assets/types.js').LocalImageProps - >; - export type RemoteImageProps = import('./dist/type-utils.js').Simplify< - import('./dist/assets/types.js').RemoteImageProps - >; + export type LocalImageProps = import('./dist/assets/types.js').LocalImageProps; + export type RemoteImageProps = import('./dist/assets/types.js').RemoteImageProps; export const { getImage, getConfiguredImageService, imageConfig, Image }: AstroAssets; } diff --git a/packages/astro/content-types.template.d.ts b/packages/astro/content-types.template.d.ts index eb560193d4a7..4d59d140fd2e 100644 --- a/packages/astro/content-types.template.d.ts +++ b/packages/astro/content-types.template.d.ts @@ -33,6 +33,7 @@ declare module 'astro:content' { import('astro/zod').ZodLiteral<'webp'>, import('astro/zod').ZodLiteral<'gif'>, import('astro/zod').ZodLiteral<'svg'>, + import('astro/zod').ZodLiteral<'avif'>, ] >; }>; diff --git a/packages/astro/src/assets/internal.ts b/packages/astro/src/assets/internal.ts index 9d2c9eb0e1d8..f6c3b0b52cb9 100644 --- a/packages/astro/src/assets/internal.ts +++ b/packages/astro/src/assets/internal.ts @@ -67,7 +67,7 @@ export async function getConfiguredImageService(): Promise { } export async function getImage( - options: ImageTransform | UnresolvedImageTransform, + options: UnresolvedImageTransform, imageConfig: AstroConfig['image'] ): Promise { if (!options || typeof options !== 'object') { diff --git a/packages/astro/src/assets/types.ts b/packages/astro/src/assets/types.ts index 0bf740d573bc..1712cda1cb85 100644 --- a/packages/astro/src/assets/types.ts +++ b/packages/astro/src/assets/types.ts @@ -28,8 +28,11 @@ export interface ImageMetadata { orientation?: number; } +/** + * A yet to be resolved image transform. Used by `getImage` + */ export type UnresolvedImageTransform = Omit & { - src: Promise<{ default: ImageMetadata }>; + src: ImageMetadata | string | Promise<{ default: ImageMetadata }>; }; /** From 950fbecac06f781725ae491145ca6dd49acdc443 Mon Sep 17 00:00:00 2001 From: Princesseuh Date: Fri, 15 Sep 2023 18:30:17 +0200 Subject: [PATCH 2/3] fix: remove unnecessary change --- packages/astro/client.d.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/astro/client.d.ts b/packages/astro/client.d.ts index 2dee0253c33c..5f396b522f4c 100644 --- a/packages/astro/client.d.ts +++ b/packages/astro/client.d.ts @@ -60,8 +60,12 @@ declare module 'astro:assets' { 'alt' >; - export type LocalImageProps = import('./dist/assets/types.js').LocalImageProps; - export type RemoteImageProps = import('./dist/assets/types.js').RemoteImageProps; + export type LocalImageProps = import('./dist/type-utils.js').Simplify< + import('./dist/assets/types.js').LocalImageProps + >; + export type RemoteImageProps = import('./dist/type-utils.js').Simplify< + import('./dist/assets/types.js').RemoteImageProps + >; export const { getImage, getConfiguredImageService, imageConfig, Image }: AstroAssets; } From 47e50872c7e0909b3de5c437c6ebd504a10a1919 Mon Sep 17 00:00:00 2001 From: Princesseuh Date: Mon, 18 Sep 2023 10:48:41 +0200 Subject: [PATCH 3/3] chore: changeset --- .changeset/fair-teachers-protect.md | 5 +++++ packages/astro/src/@types/astro.ts | 1 + 2 files changed, 6 insertions(+) create mode 100644 .changeset/fair-teachers-protect.md diff --git a/.changeset/fair-teachers-protect.md b/.changeset/fair-teachers-protect.md new file mode 100644 index 000000000000..df8215b9f795 --- /dev/null +++ b/.changeset/fair-teachers-protect.md @@ -0,0 +1,5 @@ +--- +'astro': patch +--- + +Fix small types issues related to `astro:assets`'s AVIF support and `getImage` diff --git a/packages/astro/src/@types/astro.ts b/packages/astro/src/@types/astro.ts index 10e15b6ffd74..109629428ca8 100644 --- a/packages/astro/src/@types/astro.ts +++ b/packages/astro/src/@types/astro.ts @@ -48,6 +48,7 @@ export type { ImageQuality, ImageQualityPreset, ImageTransform, + UnresolvedImageTransform, } from '../assets/types.js'; export type { RemotePattern } from '../assets/utils/remotePattern.js'; export type { SSRManifest } from '../core/app/types.js';