@surface/custom-element
Version:
Provides support of directives and data binding on custom elements.
29 lines (28 loc) • 2 kB
TypeScript
import type { IArrayPattern, IArrowFunctionExpression, IAssignmentExpression, IAssignmentPattern, IAssignmentProperty, ICallExpression, IConditionalExpression, IIdentifier, ILogicalExpression, IMemberExpression, INewExpression, INode, IParenthesizedExpression, IProperty, IRestElement, ITaggedTemplateExpression, IThisExpression, IUpdateExpression } from "@surface/expression";
import { ExpressionVisitor } from "@surface/expression";
export default class ObserverVisitor extends ExpressionVisitor {
private readonly paths;
private brokenPath;
private stack;
static observe(expression: INode): string[][];
private commit;
private reset;
private rollback;
protected visitArrayPattern(expression: IArrayPattern): INode;
protected visitArrowFunctionExpression(expression: IArrowFunctionExpression): INode;
protected visitAssignmentExpression(expression: IAssignmentExpression): INode;
protected visitAssignmentPattern(expression: IAssignmentPattern): INode;
protected visitAssignmentProperty(expression: IAssignmentProperty): INode;
protected visitCallExpression(expression: ICallExpression): INode;
protected visitLogicalExpression(expression: ILogicalExpression): INode;
protected visitConditionalExpression(expression: IConditionalExpression): INode;
protected visitIdentifier(expression: IIdentifier): INode;
protected visitMemberExpression(expression: IMemberExpression): INode;
protected visitNewExpression(expression: INewExpression): INode;
protected visitParenthesizedExpression(expression: IParenthesizedExpression): INode;
protected visitProperty(expression: IProperty): INode;
protected visitRestElement(expression: IRestElement): INode;
protected visitTaggedTemplateExpression(expression: ITaggedTemplateExpression): INode;
protected visitThisExpression(expression: IThisExpression): INode;
protected visitUpdateExpression(expression: IUpdateExpression): INode;
}