38 lines
858 B
JavaScript
38 lines
858 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");
|
|
//console.log("get source set", fullPath, src, id);
|
|
const loaded = await load(fullPath, base)
|
|
if (!loaded) {
|
|
return "";
|
|
}
|
|
const srcset = loaded.slice(16, -1)
|
|
return srcset;
|
|
}
|