| 56 | const lastUsedWriteTimes = new Map<string, number>(); |
| 57 | |
| 58 | function debouncedLastUsedUpdate(keyHash: string) { |
| 59 | const now = Date.now(); |
| 60 | const lastWrite = lastUsedWriteTimes.get(keyHash); |
| 61 | if (lastWrite && now - lastWrite < LAST_USED_DEBOUNCE_MS) return; |
| 62 | lastUsedWriteTimes.set(keyHash, now); |
| 63 | db() |
| 64 | .update(developerApiKeys) |
| 65 | .set({ lastUsedAt: new Date() }) |
| 66 | .where(eq(developerApiKeys.keyHash, keyHash)) |
| 67 | .catch((err) => console.error("Failed to update lastUsedAt:", err)); |
| 68 | } |
| 69 | |
| 70 | async function getAuth(c: Context) { |
| 71 | const authHeader = c.req.header("authorization")?.split(" ")[1]; |