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 => export const getExpiration = (state: StateType): ExpirationStateType =>
state.expiration; state.expiration;
export const getExpirationTimestamp = createSelector( const getPackagedBuildExpiration = createSelector(
getExpiration, getExpiration,
({ buildExpiration }) => buildExpiration
);
export const getExpirationTimestamp = createSelector(
getPackagedBuildExpiration,
getRemoteBuildExpiration, getRemoteBuildExpiration,
getAutoDownloadUpdate, getAutoDownloadUpdate,
( (
{ buildExpiration }: Readonly<ExpirationStateType>, buildExpiration: number,
remoteBuildExpiration: number | undefined, remoteBuildExpiration: number | undefined,
autoDownloadUpdate: boolean autoDownloadUpdate: boolean
): number => { ): number => {
@ -31,11 +36,19 @@ export const getExpirationTimestamp = createSelector(
? buildExpiration ? buildExpiration
: buildExpiration - SIXTY_DAYS; : buildExpiration - SIXTY_DAYS;
if (remoteBuildExpiration) { // Log the expiration date in this selector because it invalidates only
return Math.min(remoteBuildExpiration, localBuildExpiration); // 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;
} }
log.info(`Build expires (${type}): ${new Date(result).toISOString()}`);
return localBuildExpiration; return result;
} }
); );
@ -52,8 +65,6 @@ export const hasExpired = createSelector(
return false; return false;
} }
log.info('Build expires: ', new Date(buildExpiration).toISOString());
if (isInPast(buildExpiration)) { if (isInPast(buildExpiration)) {
return true; return true;
} }

View file

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