staticdelivr
Version:
StaticDelivr simplifies image delivery by optimizing performance through CDN integration, format conversion, and dynamic resizing. Perfect for React applications.
23 lines (22 loc) • 1.19 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.StaticDelivrImage = void 0;
const jsx_runtime_1 = require("react/jsx-runtime");
const react_1 = __importDefault(require("react"));
const config_1 = require("./config");
const buildUrl_1 = require("./utils/buildUrl");
const StaticDelivrImage = ({ src, width, height, quality, format, alt = '', className, }) => {
const { baseURL } = config_1.config.get();
// Check if src is an absolute URL
const isAbsoluteUrl = /^https?:\/\//i.test(src);
// If it's not an absolute URL, we append baseURL
const normalizedSrc = isAbsoluteUrl
? src // Don't modify absolute URLs
: `${baseURL.replace(/\/+$/, '')}/${src.replace(/^\/+/, '')}`; // Normalize baseURL and src for relative URLs
const optimizedUrl = (0, buildUrl_1.buildUrl)({ src: normalizedSrc, width, height, quality, format });
return (0, jsx_runtime_1.jsx)("img", { src: optimizedUrl, alt: alt, className: className });
};
exports.StaticDelivrImage = StaticDelivrImage;