Expose externally
This commit is contained in:
@@ -16,18 +16,23 @@ function resolveEventImageSource(realimage: EventItem['realimage']): string | nu
|
||||
const candidate = typeof realimage === 'string' ? realimage : realimage.id;
|
||||
if (!candidate) return null;
|
||||
|
||||
if (candidate.startsWith('http://') || candidate.startsWith('https://') || candidate.startsWith('/')) {
|
||||
return candidate;
|
||||
}
|
||||
|
||||
const configuredPublicUrl = process.env.DIRECTUS_PUBLIC_URL;
|
||||
const configuredDirectusPublicUrl = process.env.DIRECTUS_PUBLIC_URL;
|
||||
const directusPort = process.env.DIRECTUS_PORT ?? '8066';
|
||||
const localFallbackUrl = `${Astro.url.protocol}//${Astro.url.hostname}:${directusPort}`;
|
||||
const directusBaseUrl =
|
||||
configuredPublicUrl && !configuredPublicUrl.includes('example.com')
|
||||
? configuredPublicUrl
|
||||
configuredDirectusPublicUrl && !configuredDirectusPublicUrl.includes('example.com')
|
||||
? configuredDirectusPublicUrl
|
||||
: localFallbackUrl;
|
||||
|
||||
if (candidate.startsWith('/')) {
|
||||
return new URL(candidate, directusBaseUrl).toString();
|
||||
}
|
||||
|
||||
if (candidate.startsWith('http://') || candidate.startsWith('https://')) {
|
||||
const candidateUrl = new URL(candidate);
|
||||
return candidateUrl.pathname.startsWith('/assets/') ? new URL(candidateUrl.pathname, directusBaseUrl).toString() : candidate;
|
||||
}
|
||||
|
||||
return new URL(`/assets/${candidate}`, directusBaseUrl).toString();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user