mirror of
https://github.com/aljazceru/landscape-template.git
synced 2025-12-18 06:44:22 +01:00
42 lines
1.1 KiB
JavaScript
42 lines
1.1 KiB
JavaScript
const { CLOUDFLARE_IMAGE_ACCOUNT_HASH } = require('./consts')
|
|
|
|
const PROVIDERS = [
|
|
{
|
|
name: 'cloudflare',
|
|
prefixUrl: `https://imagedelivery.net/${CLOUDFLARE_IMAGE_ACCOUNT_HASH}/`,
|
|
variants: [
|
|
{
|
|
default: true,
|
|
name: 'public',
|
|
},
|
|
],
|
|
},
|
|
]
|
|
|
|
/**
|
|
* resolveImgObjectToUrl
|
|
* @param {object} imgObject
|
|
* @param {string} variant - List to be defined. DEFAULT TO 'public'
|
|
* @returns {string} image url
|
|
*/
|
|
function resolveImgObjectToUrl(imgObject, variant = null) {
|
|
if (!imgObject) throw new Error('Image not found')
|
|
|
|
if (imgObject.provider === 'external') {
|
|
return imgObject.url
|
|
}
|
|
|
|
const provider = PROVIDERS.find((p) => p.name === imgObject.provider)
|
|
|
|
if (provider) {
|
|
if (provider && provider.name === 'cloudflare') {
|
|
const variantName = variant ?? provider.variants.find((v) => v.default).name
|
|
return provider.prefixUrl + imgObject.provider_image_id + '/' + variantName
|
|
}
|
|
}
|
|
|
|
throw new Error('Hosting images provider not supported')
|
|
}
|
|
|
|
module.exports = resolveImgObjectToUrl
|