Files
JABA-WebStudio/app/constants.mjs
2025-10-08 18:18:41 -04:00

36 lines
850 B
JavaScript

/**
* We use mjs extension as constants in this file is shared with the build script
* and we use `node --eval` to extract the constants.
*/
export const assetBaseUrl = "/assets/";
/**
* URL.canParse(props.src)
* @type {(url: string) => boolean}
*/
const UrlCanParse = (url) => {
try {
new URL(url);
return true;
} catch {
return false;
}
};
/**
* @type {import("@webstudio-is/image").ImageLoader}
*/
export const imageLoader = (props) => {
if (props.format === "raw") {
return props.src;
}
// IPX (sharp) does not support ico
if (props.src.endsWith('.ico')) {
return props.src;
}
// handle absolute urls
const path = UrlCanParse(props.src) ? `/${props.src}` : props.src;
// https://github.com/unjs/ipx?tab=readme-ov-file#modifiers
return `/_image/w_${props.width},q_${props.quality}${path}`;
};