db-vendo-client/lib/find-in-tree.js
Lukas Siemon 8cb7d807f2
improve findInTree performance
by passing a list of paths to find in the tree up front

#154

closes #152
2020-02-22 19:13:56 +00:00

20 lines
429 B
JavaScript

'use strict';
const objectScan = require('object-scan');
const findInTree = (haystack, needles) => {
const result = Object.create(null);
needles.forEach((needle) => {
result[needle] = [];
});
objectScan(needles, {
filterFn: (key, value, { parents, matchedBy }) => {
matchedBy.forEach((needle) => {
result[needle].push([value, parents]);
});
}
})(haystack);
return result;
};
module.exports = findInTree;