polymech-astro/packages/imagetools_3/api/utils/getLinkElement.js
2025-08-26 12:17:29 +02:00

35 lines
754 B
JavaScript

// @ts-check
import getAttributesString from "./getAttributesString.js";
export default function getLinkElement({
images = [],
preload = "",
imagesizes = "",
linkAttributes,
}) {
const imagesrcset =
preload &&
images[images.length - 1]?.sources.find(
({ format: fmt }) => fmt === preload
)?.srcset;
const attributesString = getAttributesString({
element: "link",
attributes: linkAttributes,
excludeArray: ["as", "rel", "imagesizes", "imagesrcset"],
});
const linkElement =
preload && images.length
? `<link
${attributesString}
as="image"
rel="preload"
imagesizes="${imagesizes}"
imagesrcset="${imagesrcset}"
/>`
: "";
return linkElement;
}