twenty / packages /twenty-shared /src /utils /image /getImageAbsoluteURI.ts
Jules
Initial clean CRM deployment with prebuilt assets
d9494a5
Raw
History Blame Contribute Delete
622 Bytes
type getImageAbsoluteURIProps = {
imageUrl: string;
baseUrl: string;
};
export const getImageAbsoluteURI = ({
imageUrl,
baseUrl,
}: getImageAbsoluteURIProps): string => {
const lowerCaseImageUrl = imageUrl.toLowerCase();
const isAlreadyAbsoluteUri =
['http:', 'https:', 'data:', 'blob:'].some((scheme) =>
lowerCaseImageUrl.startsWith(scheme),
) || imageUrl.startsWith('//');
if (isAlreadyAbsoluteUri) {
return imageUrl;
}
if (imageUrl.startsWith('/')) {
return new URL(`/files${imageUrl}`, baseUrl).toString();
}
return new URL(`/files/${imageUrl}`, baseUrl).toString();
};