mirror of
https://github.com/public-transport/db-vendo-client.git
synced 2025-02-23 15:19: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 createFindInTree = (needles) => {
|
||||||
const result = Object.create(null);
|
const scanner = objectScan(needles, {
|
||||||
needles.forEach((needle) => {
|
filterFn: ({ value, parents, matchedBy, context }) => {
|
||||||
result[needle] = [];
|
|
||||||
});
|
|
||||||
objectScan(needles, {
|
|
||||||
filterFn: (key, value, { parents, matchedBy }) => {
|
|
||||||
matchedBy.forEach((needle) => {
|
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",
|
"gps-distance": "0.0.4",
|
||||||
"lodash": "^4.17.5",
|
"lodash": "^4.17.5",
|
||||||
"luxon": "^1.3.0",
|
"luxon": "^1.3.0",
|
||||||
"object-scan": "^11.0.1",
|
"object-scan": "^13.0.0",
|
||||||
"p-retry": "^4.1.0",
|
"p-retry": "^4.1.0",
|
||||||
"p-throttle": "^3.1.0",
|
"p-throttle": "^3.1.0",
|
||||||
"pinkie-promise": "^2.0.1",
|
"pinkie-promise": "^2.0.1",
|
||||||
|
|
|
@ -1,17 +1,19 @@
|
||||||
'use strict'
|
'use strict'
|
||||||
|
|
||||||
const omit = require('lodash/omit')
|
const omit = require('lodash/omit')
|
||||||
const findInTree = require('../lib/find-in-tree')
|
const createFindInTree = require('../lib/find-in-tree');
|
||||||
|
|
||||||
const parseCommonData = (_ctx) => {
|
const findInTree = createFindInTree([
|
||||||
const {profile, opt, res} = _ctx
|
|
||||||
const c = res.common || {}
|
|
||||||
const matches = findInTree(res, [
|
|
||||||
'**.oprX', '**.icoX', '**.prodX', '**.pRefL', '**.locX',
|
'**.oprX', '**.icoX', '**.prodX', '**.pRefL', '**.locX',
|
||||||
'**.ani.fLocX', '**.ani.tLocX', '**.fLocX', '**.tLocX',
|
'**.ani.fLocX', '**.ani.tLocX', '**.fLocX', '**.tLocX',
|
||||||
'**.remX', '**.himX', '**.polyG.polyXL', '**.rRefL',
|
'**.remX', '**.himX', '**.polyG.polyXL', '**.rRefL',
|
||||||
'**.msgL',
|
'**.msgL',
|
||||||
]);
|
])
|
||||||
|
|
||||||
|
const parseCommonData = (_ctx) => {
|
||||||
|
const {profile, opt, res} = _ctx
|
||||||
|
const c = res.common || {}
|
||||||
|
const matches = findInTree(res)
|
||||||
|
|
||||||
const common = {}
|
const common = {}
|
||||||
const ctx = {..._ctx, common}
|
const ctx = {..._ctx, common}
|
||||||
|
|
Loading…
Add table
Reference in a new issue