mirror of
https://github.com/hydralauncher/hydra.git
synced 2026-01-15 16:33:02 -03:00
38 lines
751 B
TypeScript
38 lines
751 B
TypeScript
import { imageCacheRepository } from "@main/repository";
|
|
|
|
import { registerEvent } from "../register-event";
|
|
import { getImageBase64 } from "@main/helpers";
|
|
import { logger } from "@main/services";
|
|
|
|
const getOrCacheImage = async (
|
|
_event: Electron.IpcMainInvokeEvent,
|
|
url: string
|
|
) => {
|
|
const cache = await imageCacheRepository.findOne({
|
|
where: {
|
|
url,
|
|
},
|
|
});
|
|
|
|
if (cache) return cache.data;
|
|
|
|
getImageBase64(url).then((data) =>
|
|
imageCacheRepository
|
|
.save({
|
|
url,
|
|
data,
|
|
})
|
|
.catch(() => {
|
|
logger.error(`Failed to cache image "${url}"`, {
|
|
method: "getOrCacheImage",
|
|
});
|
|
})
|
|
);
|
|
|
|
return url;
|
|
};
|
|
|
|
registerEvent(getOrCacheImage, {
|
|
name: "getOrCacheImage",
|
|
});
|