Files
wehub-resource-sync 98e40dac97
CLI Smoke Test / smoke-test-linux (20) (push) Has been cancelled
CLI Smoke Test / smoke-test-linux (24) (push) Has been cancelled
CLI Smoke Test / smoke-test-windows (20) (push) Has been cancelled
CLI Smoke Test / smoke-test-windows (24) (push) Has been cancelled
Expo App TypeScript typecheck / typecheck (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:40:49 +08:00

34 lines
1.0 KiB
TypeScript

import { db } from "@/storage/db";
export async function writeToSimpleCache(key: string, value: string) {
await db.simpleCache.upsert({
where: { key },
update: { value },
create: { key, value }
});
}
export async function readFromSimpleCache(key: string): Promise<string | null> {
const cache = await db.simpleCache.findFirst({
where: { key }
});
return cache?.value ?? null;
}
export async function runCachedBoolean(key: string, execute: () => Promise<boolean>): Promise<boolean> {
let value = await readFromSimpleCache(key);
if (value === null) {
value = (await execute()) ? 'true' : 'false';
await writeToSimpleCache(key, value);
}
return value === 'true';
}
export async function runCachedString(key: string, execute: () => Promise<string>): Promise<string> {
let value = await readFromSimpleCache(key);
if (value === null) {
value = await execute();
await writeToSimpleCache(key, value);
}
return value;
}