Schedule expiration of pinned messages

This commit is contained in:
Jamie
2025-12-16 08:10:12 -08:00
committed by GitHub
parent ed279cd8f5
commit 649ae55fca
6 changed files with 50 additions and 4 deletions

View File

@@ -10,8 +10,10 @@ import { longTimeoutAsync } from '../../util/timeout.std.js';
const parentLog = createLogger('ExpiringEntityCleanupService');
type EntityId = string | number;
export type ExpiringEntity = Readonly<{
id: string;
id: EntityId;
expiresAtMs: number;
}>;
@@ -21,7 +23,7 @@ export type Unsubscribe = () => void;
export type ExpiringEntityCleanupServiceOptions = Readonly<{
logPrefix: string;
getNextExpiringEntity: () => Promise<ExpiringEntity | null>;
cleanupExpiredEntities: () => Promise<ReadonlyArray<string>>;
cleanupExpiredEntities: () => Promise<ReadonlyArray<EntityId>>;
subscribeToTriggers: (trigger: Trigger) => Unsubscribe;
_mockGetCurrentTime?: () => number;
_mockScheduleLongTimeout?: (ms: number, signal: AbortSignal) => Promise<void>;