Fix build expiration reporting

This commit is contained in:
Fedor Indutny 2023-02-01 10:29:38 -08:00 committed by GitHub
parent 1fbc1079c9
commit a5a6b74f98
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 22 additions and 9 deletions

View file

@ -18,12 +18,17 @@ const SIXTY_DAYS = 60 * DAY;
export const getExpiration = (state: StateType): ExpirationStateType =>
state.expiration;
export const getExpirationTimestamp = createSelector(
const getPackagedBuildExpiration = createSelector(
getExpiration,
({ buildExpiration }) => buildExpiration
);
export const getExpirationTimestamp = createSelector(
getPackagedBuildExpiration,
getRemoteBuildExpiration,
getAutoDownloadUpdate,
(
{ buildExpiration }: Readonly<ExpirationStateType>,
buildExpiration: number,
remoteBuildExpiration: number | undefined,
autoDownloadUpdate: boolean
): number => {
@ -31,11 +36,19 @@ export const getExpirationTimestamp = createSelector(
? buildExpiration
: buildExpiration - SIXTY_DAYS;
if (remoteBuildExpiration) {
return Math.min(remoteBuildExpiration, localBuildExpiration);
// Log the expiration date in this selector because it invalidates only
// if one of the arguments changes.
let result: number;
let type: string;
if (remoteBuildExpiration && remoteBuildExpiration < localBuildExpiration) {
type = 'remote';
result = remoteBuildExpiration;
} else {
type = 'local';
result = localBuildExpiration;
}
return localBuildExpiration;
log.info(`Build expires (${type}): ${new Date(result).toISOString()}`);
return result;
}
);
@ -52,8 +65,6 @@ export const hasExpired = createSelector(
return false;
}
log.info('Build expires: ', new Date(buildExpiration).toISOString());
if (isInPast(buildExpiration)) {
return true;
}

View file

@ -193,7 +193,9 @@ export const getHasStoryViewReceiptSetting = createSelector(
export const getRemoteBuildExpiration = createSelector(
getItems,
(state: ItemsStateType): number | undefined =>
Number(state.remoteBuildExpiration)
state.remoteBuildExpiration === undefined
? undefined
: Number(state.remoteBuildExpiration)
);
export const getAutoDownloadUpdate = createSelector(