diff --git a/src/lib/utils/images.ts b/src/lib/utils/images.ts new file mode 100644 index 0000000..37a1bf1 --- /dev/null +++ b/src/lib/utils/images.ts @@ -0,0 +1,33 @@ +import { v2 as cloudinary } from 'cloudinary'; +import { PUBLIC_CLOUDINARY_NAME } from '$env/static/public'; +import { CLOUDINARY_API_KEY, CLOUDINARY_API_SECRET } from '$env/static/private'; + +cloudinary.config({ + cloud_name: PUBLIC_CLOUDINARY_NAME, + api_key: CLOUDINARY_API_KEY, + api_secret: CLOUDINARY_API_SECRET +}); + +type ImageTransformationOptions = { + width?: number; + height?: number; + crop?: string; + format?: string; + quality?: string | number; + [key: string]: string; +}; + +export function getImageUrl(publicId: string, options: ImageTransformationOptions = {}): string { + return cloudinary.url(publicId, { + ...options, + crop: options.crop || 'fill', + format: options.format || 'auto', + quality: options.quality || 'auto' + }); +} + +export const getImagePublicId = (imageKey: string) => { + return images[imageKey] || ''; +}; + +export default cloudinary;