astro-cloudinary
Version:
<a href="https://github.com/cloudinary-community/astro-cloudinary/actions/workflows/test_and_release.yml"><img alt="GitHub Workflow Status" src="https://img.shields.io/github/actions/workflow/status/cloudinary-community/astro-cloudinary/test_and_release.y
91 lines (85 loc) • 2.67 kB
JavaScript
import {
ASTRO_CLOUDINARY_ANALYTICS_ID,
ASTRO_CLOUDINARY_ANALYTICS_PRODUCT_ID,
ASTRO_CLOUDINARY_VERSION,
ASTRO_VERSION
} from "../chunk-TFLUFGNO.js";
// src/helpers/getCldImageUrl.ts
import { constructCloudinaryUrl } from "@cloudinary-util/url-loader";
// src/lib/cloudinary.ts
function getCloudinaryConfig(config) {
const cloudName = config?.cloud?.cloudName ?? import.meta.env.PUBLIC_CLOUDINARY_CLOUD_NAME;
if (!cloudName) {
throw new Error("A Cloudinary Cloud name is required, please make sure PUBLIC_CLOUDINARY_CLOUD_NAME is set and configured in your environment.");
}
const apiKey = config?.cloud?.apiKey ?? import.meta.env.PUBLIC_CLOUDINARY_API_KEY;
const secureDistribution = config?.url?.secureDistribution ?? import.meta.env.PUBLIC_CLOUDINARY_SECURE_DISTRIBUTION;
const privateCdn = config?.url?.privateCdn ?? import.meta.env.PUBLIC_CLOUDINARY_PRIVATE_CDN;
return Object.assign({
cloud: {
...config?.cloud,
apiKey,
cloudName
},
url: {
...config?.url,
secureDistribution,
privateCdn
}
}, config);
}
function getCloudinaryAnalytics(analytics) {
return Object.assign({
product: ASTRO_CLOUDINARY_ANALYTICS_PRODUCT_ID,
sdkCode: ASTRO_CLOUDINARY_ANALYTICS_ID,
sdkSemver: ASTRO_CLOUDINARY_VERSION,
techVersion: ASTRO_VERSION,
feature: ""
}, analytics);
}
// src/helpers/getCldImageUrl.ts
function getCldImageUrl(options, config, analytics) {
return constructCloudinaryUrl({
options,
config: getCloudinaryConfig(config),
analytics: getCloudinaryAnalytics(analytics)
});
}
// src/constants/sizes.ts
var OG_IMAGE_WIDTH = 1200;
var OG_IMAGE_HEIGHT = 630;
// src/helpers/getCldOgImageUrl.ts
function getCldOgImageUrl(options, config, analytics) {
return getCldImageUrl({
...options,
format: options.format || "jpg",
width: options.width || OG_IMAGE_WIDTH,
height: options.height || OG_IMAGE_HEIGHT,
crop: options.crop || {
width: options.width || OG_IMAGE_WIDTH,
height: options.height || OG_IMAGE_HEIGHT,
type: "fill",
gravity: "center",
source: true
}
}, config, analytics);
}
// src/helpers/getCldVideoUrl.ts
import { constructCloudinaryUrl as constructCloudinaryUrl2 } from "@cloudinary-util/url-loader";
function getCldVideoUrl(options, config, analytics) {
return constructCloudinaryUrl2({
options: {
assetType: "video",
format: "auto:video",
...options
},
config: getCloudinaryConfig(config),
analytics: getCloudinaryAnalytics(analytics)
});
}
export {
getCldImageUrl,
getCldOgImageUrl,
getCldVideoUrl
};
//# sourceMappingURL=index.js.map