clipper: handle clipped note sync in background (#2367)

This commit is contained in:
Aman Harwara
2023-08-03 18:43:04 +05:30
committed by GitHub
parent 5602a4014e
commit c76ffc764b
15 changed files with 176 additions and 18 deletions

View File

@@ -71,6 +71,7 @@ import {
export const MINIMUM_PASSWORD_LENGTH = 8
export const MissingAccountParams = 'missing-params'
const ThirtyMinutes = 30 * 60 * 1000
const cleanedEmailString = (email: string) => {
return email.trim().toLowerCase()
@@ -837,4 +838,27 @@ export class SessionManager
return Result.ok(sessionOrError.getValue())
}
async refreshSessionIfExpiringSoon(): Promise<boolean> {
const session = this.getSession()
if (!session) {
return false
}
if (session instanceof LegacySession) {
return false
}
const accessTokenExpiration = new Date(session.accessToken.expiresAt)
const refreshTokenExpiration = new Date(session.refreshToken.expiresAt)
const willAccessTokenExpireSoon = accessTokenExpiration.getTime() - Date.now() < ThirtyMinutes
const willRefreshTokenExpireSoon = refreshTokenExpiration.getTime() - Date.now() < ThirtyMinutes
if (willAccessTokenExpireSoon || willRefreshTokenExpireSoon) {
return this.httpService.refreshSession()
}
return false
}
}