feat: added redis

This commit is contained in:
2023-07-26 16:17:12 +02:00
parent bfe4725537
commit 2fa46d65ae
2 changed files with 38 additions and 7 deletions

View File

@ -5,11 +5,10 @@ import {
MagickGeometry,
} from "https://deno.land/x/imagemagick_deno@0.0.14/mod.ts";
import { parseMediaType } from "https://deno.land/std@0.175.0/media_types/parse_media_type.ts";
import * as cache from "../../../../lib/cache.ts";
await initializeImageMagick();
const cache = new Map<string, Promise<Response>>();
async function getRemoteImage(image: string) {
const sourceRes = await fetch(image);
if (!sourceRes.ok) {
@ -76,7 +75,6 @@ function parseParams(reqUrl: URL) {
}
async function getImageResponse(
imageUrl: string,
remoteImage: { buffer: Uint8Array; mediaType: string },
params: { width: number; height: number },
): Promise<Response> {
@ -110,8 +108,8 @@ export const handler = async (
}
const imageId = `${imageUrl}.${params.width}.${params.height}`;
if (cache.has(imageId)) {
return (await cache.get(imageId)!).clone();
if (await cache.has(imageId)) {
return (await (await cache.get(imageId)!)).clone();
}
const remoteImage = await getRemoteImage(imageUrl);
@ -119,9 +117,9 @@ export const handler = async (
return new Response(remoteImage, { status: 400 });
}
const response = getImageResponse(imageUrl, remoteImage, params);
const response = getImageResponse(remoteImage, params);
cache.set(imageId, response);
await cache.set(imageId, response);
return response;
};