discord-card-canvas
Version:
👾 Simple creating cards using canvas. Welcome, Rank, Info and so on.
40 lines (39 loc) • 991 B
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.loadImageSafe = loadImageSafe;
const canvas_1 = require("canvas");
const imageCache = new Map();
async function loadCachedImage(url) {
if (!imageCache.has(url)) {
imageCache.set(url, (0, canvas_1.loadImage)(url));
}
return imageCache.get(url);
}
function isURL(url) {
try {
new URL(url);
return true;
}
catch (error) {
return false;
}
}
async function loadImageSafe(url) {
if (!isURL(url)) {
console.error(`Invalid URL provided: ${url}`);
return null;
}
try {
const img = await loadCachedImage(url);
return img;
}
catch (error) {
if (error instanceof Error) {
console.error(`Failed to load image from ${url}: ${error.message}`);
}
else {
console.error(`Failed to load image from ${url}: ${String(error)}`);
}
return null;
}
}
;