diff --git a/src/Common/OfferUtility.ts b/src/Common/OfferUtility.ts index a6e1377fe..6d7f6bf7f 100644 --- a/src/Common/OfferUtility.ts +++ b/src/Common/OfferUtility.ts @@ -2,8 +2,11 @@ import { Offer, SDKOfferDefinition } from "../Contracts/DataModels"; import { OfferResponse } from "@azure/cosmos"; import { HttpHeaders } from "./Constants"; -export const parseSDKOfferResponse = (offerResponse: OfferResponse): Offer => { - const offerDefinition: SDKOfferDefinition = offerResponse?.resource; +export const parseSDKOfferResponse = (offerResponse: OfferResponse): Offer | undefined => { + const offerDefinition: SDKOfferDefinition | undefined = offerResponse?.resource; + if (!offerDefinition) { + return undefined; + } const offerContent = offerDefinition.content; if (!offerContent) { return undefined; @@ -12,7 +15,7 @@ export const parseSDKOfferResponse = (offerResponse: OfferResponse): Offer => { const minimumThroughput = offerContent.collectionThroughputInfo?.minimumRUForCollection; const autopilotSettings = offerContent.offerAutopilotSettings; - if (autopilotSettings) { + if (autopilotSettings && autopilotSettings.maxThroughput && minimumThroughput) { return { id: offerDefinition.id, autoscaleMaxThroughput: autopilotSettings.maxThroughput, diff --git a/src/Contracts/DataModels.ts b/src/Contracts/DataModels.ts index 505090c18..1ee61c489 100644 --- a/src/Contracts/DataModels.ts +++ b/src/Contracts/DataModels.ts @@ -210,9 +210,9 @@ export interface QueryMetrics { export interface Offer { id: string; - autoscaleMaxThroughput: number; - manualThroughput: number; - minimumThroughput: number; + autoscaleMaxThroughput: number | undefined; + manualThroughput: number | undefined; + minimumThroughput: number | undefined; offerDefinition?: SDKOfferDefinition; offerReplacePending: boolean; } diff --git a/tsconfig.strict.json b/tsconfig.strict.json index 9042b7300..8faaf8d07 100644 --- a/tsconfig.strict.json +++ b/tsconfig.strict.json @@ -20,7 +20,8 @@ "./src/Common/Logger.ts", "./src/Common/MessageHandler.ts", "./src/Common/MongoUtility.ts", - "./src/Common/ObjectCache.ts", + "./src/Common/ObjectCache.ts", + "./src/Common/OfferUtility.ts", "./src/Common/ThemeUtility.ts", "./src/Common/UrlUtility.ts", "./src/Common/Splitter.ts",