redesign the homepage
Build & Deploy / Build & Push Docker Image (push) Failing after 47s
Build & Deploy / Deploy to VPS (push) Has been skipped
Test / API Unit Tests (push) Failing after 5m4s
Test / Marketplace Unit Tests (push) Failing after 4m55s
Test / Admin Unit Tests (push) Successful in 9m37s
Test / Dashboard Unit Tests (push) Successful in 9m37s
Test / API Integration Tests (push) Successful in 9m54s

This commit is contained in:
root
2026-06-26 16:27:21 -04:00
parent 256ff0814e
commit d7fb7b7a7b
1030 changed files with 107374 additions and 2657 deletions
+46
View File
@@ -0,0 +1,46 @@
import type { DemoSubmissionResult } from './schema';
interface StoredOperation {
expiresAt: number;
result: Promise<DemoSubmissionResult>;
}
const globalStore = globalThis as typeof globalThis & {
__rdgDemoIdempotencyStore?: Map<string, StoredOperation>;
};
const store = globalStore.__rdgDemoIdempotencyStore ?? new Map<string, StoredOperation>();
globalStore.__rdgDemoIdempotencyStore = store;
function purgeExpired(now: number) {
for (const [key, operation] of store) {
if (operation.expiresAt <= now) store.delete(key);
}
}
export async function executeIdempotent(
key: string,
ttlSeconds: number,
operation: () => Promise<DemoSubmissionResult>,
): Promise<DemoSubmissionResult> {
const now = Date.now();
purgeExpired(now);
const existing = store.get(key);
if (existing) return existing.result;
const result = operation();
store.set(key, { expiresAt: now + ttlSeconds * 1_000, result });
try {
const settled = await result;
if (!settled.ok && settled.retryable) store.delete(key);
return settled;
} catch (error) {
store.delete(key);
throw error;
}
}
export function clearIdempotencyStoreForTests() {
store.clear();
}