in src/parsers/odata-parser.ts [95:112]
public makeFilterStatementForOneHop(): string {
const filterStatement = this.makeFilterStatement(this.query.sourceClauses);
let linksQueryAdditionalClause: string = null;
if (this.query.filterOptions !== LinkQueryMode.LinksOneHopMayContain) {
// if not 'may contain', filter the base query down to only the work items in the target/link clause.
const additionalFilterStatements = [
this.makeFilterStatementSimple(this.query.targetClauses, 'l/TargetWorkItem'),
this.makeFilterStatementSimple(this.query.linkClauses, 'l'),
].filter((column) => column != null).join(' and ');
linksQueryAdditionalClause = additionalFilterStatements.length === 0 ? null :
`${this.query.filterOptions === LinkQueryMode.LinksOneHopDoesNotContain ? 'not ' : ''}Links/any(l: ${additionalFilterStatements})`;
}
return filterStatement != null ?
`${filterStatement}${linksQueryAdditionalClause != null ? ` and ${linksQueryAdditionalClause}` : ``}` :
linksQueryAdditionalClause != null ? `$filter=${linksQueryAdditionalClause}` : null;
}