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

Function getQueryPredicate

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

Source from the content-addressed store, hash-verified

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