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.3-next-1649663515.0
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
7.4K
increased by9.96%
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:

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:

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:

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:

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:

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

findTemplateNodeInRange

Find the deepest node containing the given position.

More info

Signature:

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:

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:

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

isCommentNode

Checks if it is an AST CommentNode.

More info

Signature:

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

isComponentNode

Checks if it is an AST ComponentNode.

More info

Signature:

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

isDirectiveNode

Checks if it is an AST DirectiveNode.

More info

Signature:

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

isElementNode

Checks if it is an AST ElementNode.

More info

Signature:

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

isInterpolationNode

Checks if it is an AST InterpolationNode.

More info

Signature:

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

isNode

Checks if it is Vue template AST Node.

More info

Signature:

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

isPlainElementNode

Checks if it is an AST PlainElementNode.

More info

Signature:

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

isRootNode

Checks if it is an AST RootNode.

More info

Signature:

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

isSimpleExpressionNode

Checks if it is an AST ExpressionNode.

More info

Signature:

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

isSimpleIdentifier

Checks if it is a valid JavaScript identifers.

More info

Signature:

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

isTemplateNode

Checks if it is an AST TemplateNode.

More info

Signature:

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

isTextNode

Checks if it is an AST TextNode.

More info

Signature:

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

stringify

Convert template AST to template code.

More info

Signature:

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:

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:

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:

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

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

StringifyOptions

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

TraversalHandlers

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 11 Apr 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