grapher/lib/query/hypernova/assembler.js
2016-09-22 12:01:47 +03:00

25 lines
No EOL
894 B
JavaScript

import createSearchFilters from './createSearchFilters';
import sift from 'sift';
export default (childCollectionNode) => {
const parent = childCollectionNode.parent;
const strategy = childCollectionNode.linker.strategy;
const isVirtual = childCollectionNode.linker.isVirtual();
const fieldStorage = (isVirtual)
? childCollectionNode.linker.linkConfig.relatedLinker.linkStorageField
: childCollectionNode.linker.linkStorageField;
_.each(parent.results, result => {
result[childCollectionNode.linkName] = assembleData(childCollectionNode, result, {
fieldStorage, strategy, isVirtual
})
})
}
function assembleData(childCollectionNode, result, {fieldStorage, strategy, isVirtual}) {
const filters = createSearchFilters(result, fieldStorage, strategy, isVirtual);
return sift(filters, childCollectionNode.results);
}