From 57a99e542faf3b7b5d466d3bcae5fce33fd8e7e6 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Fri, 25 Feb 2022 17:05:50 -0500 Subject: [PATCH] make loading featureData lazily evaluated (#25675) --- lib/get-applicable-versions.js | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/lib/get-applicable-versions.js b/lib/get-applicable-versions.js index b9aefd73ca3f..4cbb970446a6 100644 --- a/lib/get-applicable-versions.js +++ b/lib/get-applicable-versions.js @@ -9,10 +9,7 @@ import encodeBracketedParentheses from './encode-bracketed-parentheses.js' const __dirname = path.dirname(fileURLToPath(import.meta.url)) const featuresDir = path.posix.join(__dirname, '../data/features') -const featureData = dataDirectory(featuresDir, { - preprocess: (dataString) => encodeBracketedParentheses(dataString.trimEnd()), - ignorePatterns: [/README\.md$/], -}) +let featureData = null // return an array of versions that an article's product versions encompasses function getApplicableVersions(frontmatterVersions, filepath) { @@ -25,6 +22,13 @@ function getApplicableVersions(frontmatterVersions, filepath) { return Object.keys(allVersions) } + if (!featureData) { + featureData = dataDirectory(featuresDir, { + preprocess: (dataString) => encodeBracketedParentheses(dataString.trimEnd()), + ignorePatterns: [/README\.md$/], + }) + } + // Check for frontmatter that includes a feature name, like: // fpt: '*' // feature: 'foo'