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

46 lines
866 B
JavaScript

// @ts-check
import { getSrcPath } from "./getSrcPath.js";
export default async function getSrcset(
src,
base,
breakpoints,
format,
options
) {
options = {
format,
w: breakpoints,
...options,
};
const keys = Object.keys(options);
const params = keys.length
? keys
.map((key) =>
Array.isArray(options[key])
? `&${key}=${options[key].join(";")}`
: `&${key}=${options[key]}`
)
.join("")
: "";
const id = `${src}?${params.slice(1)}`;
const fullPath = await getSrcPath(id);
const { default: load } = await import("../../plugin/hooks/load.js");
let srcset = null
try {
srcset = (await load(fullPath, base))?.slice(16, -1);
} catch (error) {
console.error(`Error loading image from ${fullPath}:`, error);
srcset = '';
}
return srcset;
}