You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

16 lines
440 B
JavaScript

'use strict';
module.exports = function (cacheName, filterCallback) {
let cacheKey = `_cacheFilteredProperties_${cacheName}`;
return function getFilteredProperties(node) {
if (node._clean === true && node[cacheKey] != null) {
return node[cacheKey];
} else {
let filteredProperties = Object.keys(node).filter((key) => filterCallback(key, node));
node[cacheKey] = filteredProperties;
return filteredProperties;
}
};
};