interface IRestoreInfo { /** * Whether the restoration is ongoing * If a RestoreObject request is sent but the restoration is not complete, the value is true. * If a RestoreObject request is sent and the restoration is complete, the value is false. */ ongoingRequest: boolean; /** * The time before which the restored object can be read. * If a RestoreObject request is sent but the restoration is not complete, the value is undefined. * If a RestoreObject request is sent and the restoration is complete, the value is Date. */ expiryDate?: Date; } export const parseRestoreInfo = (originalRestoreInfo?: string): IRestoreInfo | undefined => { let tempRestoreInfo: IRestoreInfo | undefined; if (originalRestoreInfo) { tempRestoreInfo = { ongoingRequest: originalRestoreInfo.includes('true') }; if (!tempRestoreInfo.ongoingRequest) { const matchArray = originalRestoreInfo.match(/expiry-date="(.*)"/); if (matchArray && matchArray[1]) { tempRestoreInfo.expiryDate = new Date(matchArray[1]); } } } return tempRestoreInfo; };