import { compressBase64Image, fileToDataURL } from "$lib/utils/file.js"; | |
import { JsonEntityIndexedDbStorage } from "$lib/remult.js"; | |
const store = new JsonEntityIndexedDbStorage(); | |
class Images { | |
async upload(file: File) { | |
const dataUrl = await fileToDataURL(file); | |
const compressed = await compressBase64Image({ base64: dataUrl, maxSizeKB: 400 }); | |
const key = `image-${crypto.randomUUID()}`; | |
store.setItem(key, compressed); | |
return key; | |
} | |
async get(key: string): Promise<string> { | |
return await store.getItem(key); | |
} | |
async delete(key: string) { | |
return await store.deleteItem(key); | |
} | |
} | |
export const images = new Images(); | |