From 2d98c5d269293fdf2c853369b4270c5294de57b3 Mon Sep 17 00:00:00 2001 From: Chris-MS-896 <64865559+Chris-MS-896@users.noreply.github.com> Date: Fri, 8 Jan 2021 22:51:50 -0600 Subject: [PATCH] add ArraysByKeyCache.ts (#366) * 'add ArraysByKeyCache' * "minor change" --- .../ArraysByKeyCache.ts | 12 +++++++---- tsconfig.strict.json | 21 ++++++++++--------- 2 files changed, 19 insertions(+), 14 deletions(-) diff --git a/src/Explorer/Graph/GraphExplorerComponent/ArraysByKeyCache.ts b/src/Explorer/Graph/GraphExplorerComponent/ArraysByKeyCache.ts index 81324ecfb..0a4d8fd85 100644 --- a/src/Explorer/Graph/GraphExplorerComponent/ArraysByKeyCache.ts +++ b/src/Explorer/Graph/GraphExplorerComponent/ArraysByKeyCache.ts @@ -11,7 +11,9 @@ export class ArraysByKeyCache { public constructor(maxNbElements: number) { this.maxNbElements = maxNbElements; - this.clear(); + this.keyQueue = []; + this.cache = {}; + this.totalElements = 0; } public clear(): void { @@ -58,7 +60,7 @@ export class ArraysByKeyCache { * @param startIndex * @param pageSize */ - public retrieve(key: string, startIndex: number, pageSize: number): T[] { + public retrieve(key: string, startIndex: number, pageSize: number): T[] | null { if (!this.cache.hasOwnProperty(key)) { return null; } @@ -77,8 +79,10 @@ export class ArraysByKeyCache { private reduceCacheSize(): void { // remove an key and its array const oldKey = this.keyQueue.shift(); - this.totalElements -= this.cache[oldKey].length; - delete this.cache[oldKey]; + if (oldKey) { + this.totalElements -= this.cache[oldKey].length; + delete this.cache[oldKey]; + } } /** diff --git a/tsconfig.strict.json b/tsconfig.strict.json index 07aa3a115..e9fca85d6 100644 --- a/tsconfig.strict.json +++ b/tsconfig.strict.json @@ -12,19 +12,19 @@ "./src/Bindings/ReactBindingHandler.ts", "./src/Common/ArrayHashMap.ts", "./src/Common/Constants.ts", - "./src/Common/DeleteFeedback.ts", - "./src/Common/DocumentUtility.ts", + "./src/Common/DeleteFeedback.ts", + "./src/Common/DocumentUtility.ts", "./src/Common/EnvironmentUtility.ts", "./src/Common/HashMap.ts", "./src/Common/HeadersUtility.ts", "./src/Common/Logger.ts", "./src/Common/MessageHandler.ts", "./src/Common/MongoUtility.ts", - "./src/Common/ObjectCache.ts", - "./src/Common/OfferUtility.ts", + "./src/Common/ObjectCache.ts", + "./src/Common/OfferUtility.ts", "./src/Common/ThemeUtility.ts", - "./src/Common/UrlUtility.ts", - "./src/Common/Splitter.ts", + "./src/Common/UrlUtility.ts", + "./src/Common/Splitter.ts", "./src/ConfigContext.ts", "./src/Contracts/ActionContracts.ts", "./src/Contracts/DataModels.ts", @@ -41,12 +41,13 @@ "./src/Definitions/jquery.d.ts", "./src/Definitions/plotly.js-cartesian-dist.d-min.ts", "./src/Definitions/svg.d.ts", - "./src/Explorer/Controls/ErrorDisplayComponent/ErrorDisplayComponent.ts", - "./src/Explorer/Controls/CollapsiblePanel/CollapsiblePanelComponent.ts", - "./src/Explorer/Controls/GitHub/GitHubStyleConstants.ts", - "./src/Explorer/Controls/InputTypeahead/InputTypeahead.ts", + "./src/Explorer/Controls/ErrorDisplayComponent/ErrorDisplayComponent.ts", + "./src/Explorer/Controls/CollapsiblePanel/CollapsiblePanelComponent.ts", + "./src/Explorer/Controls/GitHub/GitHubStyleConstants.ts", + "./src/Explorer/Controls/InputTypeahead/InputTypeahead.ts", "./src/Explorer/Controls/SmartUi/InputUtils.ts", "./src/Explorer/Graph/GraphExplorerComponent/__mocks__/GremlinClient.ts", + "./src/Explorer/Graph/GraphExplorerComponent/ArraysByKeyCache.ts", "./src/Explorer/Graph/GraphExplorerComponent/EdgeInfoCache.ts", "./src/Explorer/Graph/GraphExplorerComponent/GraphData.ts", "./src/Explorer/Notebook/NotebookComponent/__mocks__/rx-jupyter.ts",