UNPKG

astro

Version:

Astro is a modern site builder with web best practices, performance, and DX front-of-mind.

32 lines (31 loc) • 1.37 kB
/** * Determines if the given source is an ECMAScript Module (ESM) imported image. * * @param {ImageMetadata | string} src - The source to check. It can be an `ImageMetadata` object or a string. * @return {boolean} Returns `true` if the source is an `ImageMetadata` object; otherwise, `false`. */ export function isESMImportedImage(src) { return typeof src === "object" || typeof src === "function" && "src" in src; } /** * Determines if the provided source is a remote image URL in the form of a string. * * @param {ImageMetadata | string} src - The source to check, which can either be an `ImageMetadata` object or a string. * @return {boolean} Returns `true` if the source is a string; otherwise, `false`. */ export function isRemoteImage(src) { return typeof src === "string"; } /** * Resolves the source of an image transformation by handling asynchronous or synchronous inputs. * * @param {UnresolvedImageTransform['src']} src - The source of the image transformation. * @return {Promise<string | ImageMetadata>} A promise that resolves to the image source. It returns either the default export of the resolved source or the resolved source itself if the default export doesn't exist. */ export async function resolveSrc(src) { if (typeof src === "object" && "then" in src) { const resource = await src; return resource.default ?? resource; } return src; }