mirror of
https://github.com/public-transport/db-vendo-client.git
synced 2025-02-23 07:09:35 +02:00
parent
e032ec1acd
commit
1b0133190f
3 changed files with 28 additions and 23 deletions
|
@ -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
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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}
|
||||
|
|
Loading…
Add table
Reference in a new issue