MCPcopy
hub / github.com/monkeytypegame/monkeytype / updateLbMemory

Function updateLbMemory

frontend/src/ts/db.ts:266–300  ·  view source on GitHub ↗
(
  mode: M,
  mode2: Mode2<M> | undefined,
  language: Language,
  rank: number,
  api = false,
)

Source from the content-addressed store, hash-verified

264}
265
266export async function updateLbMemory<M extends Mode>(
267 mode: M,
268 mode2: Mode2<M> | undefined,
269 language: Language,
270 rank: number,
271 api = false,
272): Promise<void> {
273 if (mode2 === undefined) return;
274 if (mode === "time") {
275 const timeMode = mode;
276 const timeMode2 = mode2 as "15" | "60";
277
278 const snapshot = getSnapshot();
279 if (!snapshot) return;
280 snapshot.lbMemory ??= {
281 time: { "15": { english: 0 }, "60": { english: 0 } },
282 };
283 snapshot.lbMemory[timeMode] ??= {
284 "15": { english: 0 },
285 "60": { english: 0 },
286 };
287 snapshot.lbMemory[timeMode][timeMode2] ??= {};
288 const current = snapshot.lbMemory?.[timeMode]?.[timeMode2]?.[language];
289
290 //this is protected above so not sure why it would be undefined
291 const mem = snapshot.lbMemory[timeMode][timeMode2];
292 mem[language] = rank;
293 if (api && current !== rank) {
294 await Ape.users.updateLeaderboardMemory({
295 body: { mode, mode2, language, rank },
296 });
297 }
298 setSnapshot(snapshot);
299 }
300}
301
302export type SaveLocalResultData = {
303 xp?: number;

Callers 1

syncLbMemoryFunction · 0.90

Calls 2

setSnapshotFunction · 0.85
getSnapshotFunction · 0.70

Tested by

no test coverage detected