client/packages/cache/src/helpers.ts
Alois 790a1db788
All checks were successful
/ build-web (push) Successful in 7m26s
/ build-desktop (linux) (push) Successful in 11m29s
/ build-mobile (push) Successful in 19m15s
/ release (push) Successful in 3m3s
(feat): add cache package
(feat): improve local storage security
(feat): move settings to dedicated settings package
2026-07-11 22:08:01 +02:00

30 lines
810 B
TypeScript

import type { CachedMessage, ConversationWindow } from "./schemas";
export function trimMessages(
messages: readonly CachedMessage[],
limit: number,
): CachedMessage[] {
return [...messages]
.sort((a, b) => b.SendTime - a.SendTime)
.slice(0, limit)
.sort((a, b) => a.SendTime - b.SendTime);
}
export function replaceConversation(
windows: readonly ConversationWindow[],
replacement: ConversationWindow,
): ConversationWindow[] {
return [
replacement,
...windows.filter((item) => item.UserId !== replacement.UserId),
];
}
export function selectConversationWindows(
windows: readonly ConversationWindow[],
limit: number,
): ConversationWindow[] {
return [...windows]
.sort((a, b) => b.LastMessageAt - a.LastMessageAt || a.UserId - b.UserId)
.slice(0, limit);
}