diff --git a/.changeset/sweet-seals-fold.md b/.changeset/sweet-seals-fold.md index 30cbe98b6..7b17a4c91 100644 --- a/.changeset/sweet-seals-fold.md +++ b/.changeset/sweet-seals-fold.md @@ -2,4 +2,5 @@ 'providence-analytics': minor --- -use globby again +- use globby again +- fix ast cache (prevent from endless expanding); expose amountOfCachedProjects diff --git a/packages-node/providence-analytics/src/program/core/QueryService.js b/packages-node/providence-analytics/src/program/core/QueryService.js index 008a1f741..53042d1f8 100644 --- a/packages-node/providence-analytics/src/program/core/QueryService.js +++ b/packages-node/providence-analytics/src/program/core/QueryService.js @@ -146,12 +146,12 @@ export class QueryService { } // In order to prevent running out of memory, there is a limit to the number of // project ASTs in cache. For a session running multiple analyzers for reference - // and target projects, we need this number to be at least 2. - if (astProjectsDataCache.size >= 2) { - astProjectsDataCache.delete(astProjectsDataCache.keys()[0]); + if (astProjectsDataCache.size >= this.amountOfCachedProjects) { + astProjectsDataCache.delete(astProjectsDataCache.keys().next().value); } astProjectsDataCache.set(pathAndRequiredAst, astData); } } QueryService.cacheDisabled = false; +QueryService.amountOfCachedProjects = 2; QueryService.addAstToProjectsData = memoize(QueryService.addAstToProjectsData);