Files
kandev/apps/web/lib/settings/user-settings-revision.ts
T
Clément Fiere 15c0c35df6 feat(auth): resolve session hostnames (#2741)
Co-authored-by: Carlos Florencio <carlosmflorencio@gmail.com>
2026-09-04 13:06:33 +00:00

27 lines
959 B
TypeScript

function validRevision(value: number | null | undefined): number | null {
if (typeof value !== "number" || !Number.isSafeInteger(value) || value < 0) return null;
return value;
}
export function compareUserSettingsRevisions(
left: number | null | undefined,
right: number | null | undefined,
): -1 | 0 | 1 | null {
const leftValue = validRevision(left);
const rightValue = validRevision(right);
if (leftValue === null && rightValue === null) return null;
if (leftValue === null) return -1;
if (rightValue === null) return 1;
if (leftValue === rightValue) return 0;
return leftValue > rightValue ? 1 : -1;
}
export function isUserSettingsResponseCurrent(
responseRevision: number | null | undefined,
currentRevision: number | null | undefined,
isSubmittedSnapshot: boolean,
): boolean {
const order = compareUserSettingsRevisions(responseRevision, currentRevision);
return order === null ? isSubmittedSnapshot : order >= 0;
}