object-scan@13 (improved performance)

closes #173
This commit is contained in:
Lukas Siemon 2020-04-08 09:55:15 -07:00 committed by Jannis R
parent e032ec1acd
commit 1b0133190f
No known key found for this signature in database
GPG key ID: 0FE83946296A88A5
3 changed files with 28 additions and 23 deletions

View file

@ -1,20 +1,23 @@
'use strict';
'use strict'
const objectScan = require('object-scan');
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 }) => {
const createFindInTree = (needles) => {
const scanner = objectScan(needles, {
filterFn: ({ value, parents, matchedBy, context }) => {
matchedBy.forEach((needle) => {
result[needle].push([value, parents]);
});
context[needle].push([value, parents])
})
}
})(haystack);
return result;
};
})
module.exports = findInTree;
return (haystack) => {
const context = Object.create(null)
needles.forEach((needle) => {
context[needle] = []
})
return scanner(haystack, context)
}
}
module.exports = createFindInTree

View file

@ -43,7 +43,7 @@
"gps-distance": "0.0.4",
"lodash": "^4.17.5",
"luxon": "^1.3.0",
"object-scan": "^11.0.1",
"object-scan": "^13.0.0",
"p-retry": "^4.1.0",
"p-throttle": "^3.1.0",
"pinkie-promise": "^2.0.1",

View file

@ -1,17 +1,19 @@
'use strict'
const omit = require('lodash/omit')
const findInTree = require('../lib/find-in-tree')
const createFindInTree = require('../lib/find-in-tree');
const parseCommonData = (_ctx) => {
const {profile, opt, res} = _ctx
const c = res.common || {}
const matches = findInTree(res, [
const findInTree = createFindInTree([
'**.oprX', '**.icoX', '**.prodX', '**.pRefL', '**.locX',
'**.ani.fLocX', '**.ani.tLocX', '**.fLocX', '**.tLocX',
'**.remX', '**.himX', '**.polyG.polyXL', '**.rRefL',
'**.msgL',
]);
])
const parseCommonData = (_ctx) => {
const {profile, opt, res} = _ctx
const c = res.common || {}
const matches = findInTree(res)
const common = {}
const ctx = {..._ctx, common}