Skip to content
Snippets Groups Projects
Commit e71220b6 authored by netpro2k's avatar netpro2k
Browse files

Add a simple resolver cache for farspark urls

parent 846e90dd
No related branches found
No related tags found
No related merge requests found
......@@ -5,16 +5,21 @@ if (process.env.NODE_ENV === "development") {
resolveMediaUrl = `https://${process.env.DEV_RETICULUM_SERVER}${resolveMediaUrl}`;
}
const farsparkCache = new Map();
export const resolveFarsparkUrl = async url => {
const parsedUrl = new URL(url);
if ((parsedUrl.protocol !== "http:" && parsedUrl.protocol !== "https:") || isHostWhitelisted(parsedUrl.hostname))
return { raw: url, origin: url };
if (farsparkCache.has(url)) return farsparkCache.get(url);
return await fetch(resolveMediaUrl, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ media: { url } })
}).then(r => r.json());
const resolved =
(parsedUrl.protocol !== "http:" && parsedUrl.protocol !== "https:") || isHostWhitelisted(parsedUrl.hostname)
? { raw: url, origin: url }
: await fetch(resolveMediaUrl, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ media: { url } })
}).then(r => r.json());
farsparkCache.set(url, resolved);
return resolved;
};
let interactableId = 0;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment