mirror of https://github.com/halo-dev/halo
24 lines
554 B
TypeScript
24 lines
554 B
TypeScript
import type { GetThumbnailByUriSizeEnum } from "@halo-dev/api-client";
|
|
|
|
const THUMBNAIL_WIDTH_MAP: Record<GetThumbnailByUriSizeEnum, number> = {
|
|
XL: 1600,
|
|
L: 1200,
|
|
M: 800,
|
|
S: 400,
|
|
};
|
|
|
|
export function generateThumbnailUrl(
|
|
url: string,
|
|
size: GetThumbnailByUriSizeEnum
|
|
) {
|
|
const { origin } = location;
|
|
|
|
if (url.startsWith(origin) || url.startsWith("/")) {
|
|
return `${url}?width=${THUMBNAIL_WIDTH_MAP[size]}`;
|
|
}
|
|
|
|
return `/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=${encodeURIComponent(
|
|
url
|
|
)}&size=${size}`;
|
|
}
|