Refactor cache.js to simplify use.

This commit is contained in:
David Anson 2022-06-02 21:33:31 -07:00
parent c5ca661b96
commit 36c689388f
3 changed files with 59 additions and 100 deletions

View file

@ -2,50 +2,22 @@
"use strict";
let codeBlockAndSpanRanges = null;
module.exports.codeBlockAndSpanRanges = (value) => {
if (value) {
codeBlockAndSpanRanges = value;
}
return codeBlockAndSpanRanges;
};
const map = new Map();
let flattenedLists = null;
module.exports.flattenedLists = (value) => {
if (value) {
flattenedLists = value;
module.exports.set = (keyValuePairs) => {
for (const [ key, value ] of Object.entries(keyValuePairs)) {
map.set(key, value);
}
return flattenedLists;
};
module.exports.clear = () => map.clear();
let htmlElementRanges = null;
module.exports.htmlElementRanges = (value) => {
if (value) {
htmlElementRanges = value;
}
return htmlElementRanges;
};
let lineMetadata = null;
module.exports.lineMetadata = (value) => {
if (value) {
lineMetadata = value;
}
return lineMetadata;
};
let referenceLinkImageData = null;
module.exports.referenceLinkImageData = (value) => {
if (value) {
referenceLinkImageData = value;
}
return referenceLinkImageData;
};
module.exports.clear = () => {
codeBlockAndSpanRanges = null;
flattenedLists = null;
htmlElementRanges = null;
lineMetadata = null;
referenceLinkImageData = null;
};
module.exports.codeBlockAndSpanRanges =
() => map.get("codeBlockAndSpanRanges");
module.exports.flattenedLists =
() => map.get("flattenedLists");
module.exports.htmlElementRanges =
() => map.get("htmlElementRanges");
module.exports.lineMetadata =
() => map.get("lineMetadata");
module.exports.referenceLinkImageData =
() => map.get("referenceLinkImageData");

View file

@ -498,18 +498,23 @@ function lintContent(
lines,
frontMatterLines
});
const lineMetadata = helpers.getLineMetadata(paramsBase);
cache.codeBlockAndSpanRanges(
helpers.codeBlockAndSpanRanges(paramsBase, lineMetadata)
);
cache.flattenedLists(helpers.flattenLists(paramsBase.tokens));
cache.htmlElementRanges(
helpers.htmlElementRanges(paramsBase, lineMetadata)
);
cache.lineMetadata(lineMetadata);
cache.referenceLinkImageData(
helpers.getReferenceLinkImageData(paramsBase, lineMetadata)
);
const lineMetadata =
helpers.getLineMetadata(paramsBase);
const codeBlockAndSpanRanges =
helpers.codeBlockAndSpanRanges(paramsBase, lineMetadata);
const flattenedLists =
helpers.flattenLists(paramsBase.tokens);
const htmlElementRanges =
helpers.htmlElementRanges(paramsBase, lineMetadata);
const referenceLinkImageData =
helpers.getReferenceLinkImageData(paramsBase, lineMetadata);
cache.set({
codeBlockAndSpanRanges,
flattenedLists,
htmlElementRanges,
lineMetadata,
referenceLinkImageData
});
// Function to run for each rule
let results = [];
// eslint-disable-next-line jsdoc/require-jsdoc