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

32 lines
1.1 KiB
TypeScript

import { Tx } from "@/storage/inTx";
export async function fetchRepeatKey(tx: Tx, key: string) {
let session = await tx.repeatKey.findUnique({ where: { key, expiresAt: { gte: new Date() } } });
if (session) {
return session.value;
} else {
return null;
}
}
export async function saveRepeatKey(tx: Tx, key: string, value: string, timeout: number = Date.now() + (1000 * 60 * 60 * 24) /* 1 day */) {
await tx.repeatKey.upsert({
where: { key },
create: { key, value, expiresAt: new Date(timeout) },
update: { key, value, expiresAt: new Date(timeout) }
});
}
export async function repeatKey(tx: Tx, key: string, value: string, timeout: number = Date.now() + (1000 * 60 * 60 * 24) /* 1 day */): Promise<boolean> {
let session = await tx.repeatKey.findUnique({ where: { key, expiresAt: { lte: new Date() } } });
if (session) {
return false;
}
await tx.repeatKey.upsert({
where: { key },
create: { key, value, expiresAt: new Date(timeout) },
update: { key, value, expiresAt: new Date(timeout) }
});
return true;
}