From fd3084fef7711a2cb93de70d264b806b038df8c0 Mon Sep 17 00:00:00 2001 From: matthieu42morin Date: Sun, 28 Apr 2024 01:15:59 +0200 Subject: [PATCH] cloudinary serverside images --- src/lib/utils/images.ts | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 src/lib/utils/images.ts 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;