20 lines
609 B
JavaScript
20 lines
609 B
JavaScript
|
/**
|
||
|
* This link disambiguator looks for matching docs that have a common container with the
|
||
|
* originatingDoc and will return just those.
|
||
|
*/
|
||
|
module.exports = function disambiguateByContainer() {
|
||
|
return _disambiguate;
|
||
|
};
|
||
|
|
||
|
function _disambiguate(alias, originatingDoc, docs) {
|
||
|
if (originatingDoc) {
|
||
|
const filteredDocs = docs.filter(doc => doc.containerDoc === originatingDoc);
|
||
|
if (filteredDocs.length === 0) {
|
||
|
// No docs match so let's look at the containers container
|
||
|
return _disambiguate(alias, originatingDoc.containerDoc, docs);
|
||
|
}
|
||
|
return filteredDocs;
|
||
|
}
|
||
|
return docs;
|
||
|
}
|