@voorhoede/image-vue
Version:
Optimized CDN image component
39 lines (38 loc) • 975 B
JavaScript
import { defineComponent, h } from "vue";
import { generateSrcSet } from "../core/generate-src-set.mjs";
export const Image = defineComponent((props) => {
const loader = props.loader !== undefined
? props.loader
: ({ src }) => src;
const quality = props.quality ?? 45;
return () => h("img", {
src: props.src,
alt: props.alt,
width: props.width,
height: props.height,
loading: props.loading,
sizes: props.sizes,
srcset: props.srcset ||
generateSrcSet({
loader,
src: props.src,
width: props.width,
quality,
sizes: props.sizes,
}),
decoding: props.decoding ?? "async",
});
}, {
props: [
"src",
"alt",
"width",
"height",
"loading",
"sizes",
"srcset",
"decoding",
"loader",
"quality",
],
});