MCPcopy Create free account
hub / github.com/angular/angular / getQueryPredicate

Function getQueryPredicate

packages/compiler/src/render3/view/query_generation.ts:67–88  ·  view source on GitHub ↗
(query: R3QueryMetadata, constantPool: ConstantPool)

Source from the content-addressed store, hash-verified

65}
66
67function getQueryPredicate(query: R3QueryMetadata, constantPool: ConstantPool): o.Expression {
68 if (Array.isArray(query.predicate)) {
69 let predicate: o.Expression[] = [];
70 query.predicate.forEach((selector: string): void => {
71 // Each item in predicates array may contain strings with comma-separated refs
72 // (for ex. 'ref, ref1, ..., refN'), thus we extract individual refs and store them
73 // as separate array entities
74 const selectors = selector.split(',').map((token) => o.literal(token.trim()));
75 predicate.push(...selectors);
76 });
77 return constantPool.getConstLiteral(o.literalArr(predicate), true);
78 } else {
79 // The original predicate may have been wrapped in a `forwardRef()` call.
80 switch (query.predicate.forwardRef) {
81 case ForwardRefHandling.None:
82 case ForwardRefHandling.Unwrapped:
83 return query.predicate.expression;
84 case ForwardRefHandling.Wrapped:
85 return o.importExpr(R3.resolveForwardRef).callFn([query.predicate.expression]);
86 }
87 }
88}
89
90function getQueryCreateParameters(
91 query: R3QueryMetadata,

Callers 1

getQueryCreateParametersFunction · 0.85

Calls 5

isArrayMethod · 0.80
mapMethod · 0.80
getConstLiteralMethod · 0.80
forEachMethod · 0.45
pushMethod · 0.45

Tested by

no test coverage detected