Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@vuedx/template-ast-types

Package Overview
Dependencies
Maintainers
1
Versions
141
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@vuedx/template-ast-types

Helper functions for Vue template AST

  • 0.7.4
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
5.9K
increased by48.61%
Maintainers
1
Weekly downloads
 
Created
Source

Template AST Helpers

A collection of utility functions for Vue template AST traversal, transformation, assertion and creation.

Usage

npm add @vuedx/template-ast-types

API

createSimpleExpression

Create AST Node

More info

Signature:

export declare function createSimpleExpression(content: SimpleExpressionNode['content'], isStatic: SimpleExpressionNode['isStatic'], loc?: SourceLocation, isConstant?: boolean): SimpleExpressionNode;
ParameterTypeDescription
contentSimpleExpressionNode['content']-
isStaticSimpleExpressionNode['isStatic']-
locSourceLocation-
isConstantboolean-

findParentNode

Find the parent element node.

More info

Signature:

export declare function findParentNode(ast: RootNode, node: Node): ElementNode | undefined;
ParameterTypeDescription
astRootNode-
nodeNode-

findTemplateChildNodeAt

Find a child (element, component, text, interpolation, or comment) node containing the given position.

More info

Signature:

export declare function findTemplateChildNodeAt(ast: RootNode, position: number, mode?: 'start' | 'end'): SearchResult;
ParameterTypeDescription
astRootNode-
positionnumber-
mode'start' | 'end'Open/close range comparison mode: • undefined - position in [start, end] • 'start' — position in [start, end) • 'end' - position in (start, end]

findTemplateChildrenInRange

Get all child (element, component, text, interpolation, or comment) nodes contained in given range. (partial overlaps are ignored)

More info

Signature:

export declare function findTemplateChildrenInRange(ast: RootNode, start: number, end: number): Node[];
ParameterTypeDescription
astRootNode-
startnumber-
endnumber-

findTemplateNodeAt

Find the deepest node containing the given position.

More info

Signature:

export declare function findTemplateNodeAt(ast: RootNode, position: number): SearchResult;
ParameterTypeDescription
astRootNode-
positionnumber-

findTemplateNodeInRange

Find the deepest node containing the given position.

More info

Signature:

export declare function findTemplateNodeInRange(ast: RootNode, start: number, end: number, mode?: 'start' | 'end'): SearchResult;
ParameterTypeDescription
astRootNode-
startnumber-
endnumber-
mode'start' | 'end'Open/close range comparison mode: • undefined - position in [start, end] • 'start' — position in [start, end) • 'end' - position in (start, end]

findTemplateNodesInRange

Get all nodes contained in given range. (partial overlaps are ignored)

More info

Signature:

export declare function findTemplateNodesInRange(ast: RootNode, start: number, end: number): Node[];
ParameterTypeDescription
astRootNode-
startnumber-
endnumber-

isAttributeNode

Checks if it is an AST AttributeNode.

More info

Signature:

export declare function isAttributeNode(node: unknown): node is AttributeNode;
ParameterTypeDescription
nodeunknown-

isCommentNode

Checks if it is an AST CommentNode.

More info

Signature:

export declare function isCommentNode(node: unknown): node is CommentNode;
ParameterTypeDescription
nodeunknown-

isComponentNode

Checks if it is an AST ComponentNode.

More info

Signature:

export declare function isComponentNode(node: unknown): node is ComponentNode;
ParameterTypeDescription
nodeunknown-

isCompoundExpressionNode

Checks if it is an AST ExpressionNode.

More info

Signature:

export declare function isCompoundExpressionNode(node: unknown): node is SimpleExpressionNode;
ParameterTypeDescription
nodeunknown-

isDirectiveNode

Checks if it is an AST DirectiveNode.

More info

Signature:

export declare function isDirectiveNode(node: unknown): node is DirectiveNode;
ParameterTypeDescription
nodeunknown-

isElementNode

Checks if it is an AST ElementNode.

More info

Signature:

export declare function isElementNode(node: unknown): node is ElementNode;
ParameterTypeDescription
nodeunknown-

isExpressionNode

Checks if it is an AST ExpressionNode.

More info

Signature:

export declare function isExpressionNode(node: unknown): node is ExpressionNode;
ParameterTypeDescription
nodeunknown-

isInterpolationNode

Checks if it is an AST InterpolationNode.

More info

Signature:

export declare function isInterpolationNode(node: unknown): node is InterpolationNode;
ParameterTypeDescription
nodeunknown-

isNode

Checks if it is Vue template AST Node.

More info

Signature:

export declare function isNode(node: unknown): node is Node;
ParameterTypeDescription
nodeunknown-

isPlainElementNode

Checks if it is an AST PlainElementNode.

More info

Signature:

export declare function isPlainElementNode(node: unknown): node is PlainElementNode;
ParameterTypeDescription
nodeunknown-

isRootNode

Checks if it is an AST RootNode.

More info

Signature:

export declare function isRootNode(node: unknown): node is RootNode;
ParameterTypeDescription
nodeunknown-

isSimpleExpressionNode

Checks if it is an AST ExpressionNode.

More info

Signature:

export declare function isSimpleExpressionNode(node: unknown): node is SimpleExpressionNode;
ParameterTypeDescription
nodeunknown-

isSimpleIdentifier

Checks if it is a valid JavaScript identifiers.

More info

Signature:

export declare function isSimpleIdentifier(content: string): boolean;
ParameterTypeDescription
contentstring-

isSlotNode

Checks if it is an AST SlotNode.

More info

Signature:

export declare function isSlotNode(node: unknown): node is SlotOutletNode;
ParameterTypeDescription
nodeunknown-

isTemplateNode

Checks if it is an AST TemplateNode.

More info

Signature:

export declare function isTemplateNode(node: unknown): node is TemplateNode;
ParameterTypeDescription
nodeunknown-

isTextNode

Checks if it is an AST TextNode.

More info

Signature:

export declare function isTextNode(node: unknown): node is TextNode;
ParameterTypeDescription
nodeunknown-

stringify

Convert template AST to template code.

More info

Signature:

export declare function stringify(node: Node | Node[], options?: Partial<StringifyOptions>): string;
ParameterTypeDescription
nodeNode | Node[]-
optionsPartial<StringifyOptions>-

traverse

A general AST traversal utility with both prefix and postfix handlers, and a state object. Exposes ancestry data to each handler so that more complex AST data can be taken into account.

More info

Signature:

export declare function traverse<T>(node: Node, handlers: TraversalHandler<T> | TraversalHandlers<T>, state?: T): void;
ParameterTypeDescription
nodeNode-
handlersTraversalHandler | TraversalHandlers-
stateT-

traverseEvery

An abortable AST traversal utility. Return false (or falsy value) to stop traversal.

More info

Signature:

export declare function traverseEvery<T>(node: Node, enter: (node: Node, ancestors: TraversalAncestors, state: T) => boolean, state?: any, ancestors?: TraversalAncestors): void;
ParameterTypeDescription
nodeNode-
enter(node: Node, ancestors: TraversalAncestors, state: T) => boolean-
stateany-
ancestorsTraversalAncestors-

traverseFast

A faster AST traversal utility. It behaves same as [traverse()] but there is no ancestory data.

More info

Signature:

export declare function traverseFast<T = any>(node: object, enter: (node: Node, state: T, stop: () => void) => void, state?: T): void;
ParameterTypeDescription
nodeobject-
enter(node: Node, state: T, stop: () => void) => void-
stateT-

Types

SearchResult

export interface SearchResult {
  ancestors: TraversalAncestors;
  node: Node | null;
}

StringifyOptions

export interface StringifyOptions {
  directive: 'shorthand' | 'longhand';
  indent: number;
  initialIndent: number;
  replaceNodes: Map<Node, Node | null>;
}

TraversalHandlers

export interface TraversalHandlers<T> {
  enter?: TraversalHandler<T>;
  exit?: TraversalHandler<T>;
}

Support

This package is part of VueDX project, maintained by Rahul Kadyan. You can 💖 sponsor him for continued development of this package and other VueDX tools.

Keywords

FAQs

Package last updated on 01 Nov 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc