(node: a.Node, expr: string)
| 104 | } |
| 105 | |
| 106 | function findExpressionInNode(node: a.Node, expr: string): e.AST | null { |
| 107 | if (node instanceof a.Element || node instanceof a.Template || node instanceof a.Component) { |
| 108 | return findExpression([...node.inputs, ...node.outputs, ...node.children], expr); |
| 109 | } else if (node instanceof a.Directive) { |
| 110 | return findExpression([...node.inputs, ...node.outputs], expr); |
| 111 | } else if (node instanceof a.BoundAttribute || node instanceof a.BoundText) { |
| 112 | const ts = toStringExpression(node.value); |
| 113 | return ts === expr ? node.value : null; |
| 114 | } else if (node instanceof a.BoundEvent) { |
| 115 | return toStringExpression(node.handler) === expr ? node.handler : null; |
| 116 | } else { |
| 117 | return null; |
| 118 | } |
| 119 | } |
| 120 | |
| 121 | export function toStringExpression(expr: e.AST): string { |
| 122 | while (expr instanceof e.ASTWithSource) { |
no test coverage detected
searching dependent graphs…