View Source on Github

Inherits from

Exportable, TSHasBlock, SourceFile, Usable, HasBlock, File, Importable, Expression, Editable, HasName

Attributes

classes

list[ Class ]

Returns all Classes in the file.

code_block

content

str

Returns the content of the file as a UTF-8 encoded string.

decorators

list[ TSDecorator ]

Returns a list of decorators associated with this symbol.

default_exports

list[ TSExport ]

Returns all default export symbols from the file.

dependencies

list[Union[ Symbol , Import ]]

Returns a list of symbols that this symbol depends on.

directory

Directory | None

Returns the directory that contains this file.

docstring

Retrieves the docstring of a function or class.

export

Export | None

Returns the export object that exports this symbol.

export_statements

Returns a list of all export statements in the file.

exported_name

str | None

Retrieves the exported name of a symbol from its file.

exports

list[ TSExport ]

Returns all Export symbols in the file.

extended

Returns a SymbolGroup of all extended nodes associated with this element.

extended_source

str

Returns the source text representation of all extended nodes.

extension

str

Returns the file extension.

file

A property that returns the file object for non-source files.

file_node_id

NodeId

file_path

str

filepath

str

Retrieves the file path of the file that this Editable instance belongs to.

full_name

str | None

Returns the full name of the object, including the namespace path.

function_calls

list[ FunctionCall ]

Returns all function calls within the code block and its decorators.

functions

list[ Function ]

Returns all Functions in the file.

global_vars

list[ Assignment ]

Returns all GlobalVars in the file.

import_module_name

str

Returns the module name that this file gets imported as.

import_statements

Returns all ImportStatements in the file, where each import statement can contain

importers

list[ Import ]

Returns all imports that directly imports this file as a module.

imports

list[ Import ]

List of all Imports in this file.

inbound_imports

list[ Import ]

Returns all imports that are importing symbols contained in this file.

interfaces

list[ TSInterface ]

Returns all Interfaces in the file.

is_binary

bool

Indicates whether the file contains binary data.

is_decorated

bool

Checks if the current symbol has a decorator.

is_exported

bool

Indicates if the symbol is exported from its defining file.

is_reexported

bool

Determines if the symbol is re-exported from a different file.

jsx_elements

list[ JSXElement [ TSFile ]]

Returns a list of all JSX elements contained within this symbol.

name

str | None

Retrieves the base name of the object without namespace prefixes.

named_exports

list[ TSExport ]

Returns the named exports declared in the file.

node_type

Literal[NodeType.FILE]

owners

set[str]

Returns the CODEOWNERS of the file.

parent

parent_class

Class | None

Find the class this node is contained in

parent_function

Function | None

Find the function this node is contained in

parent_statement

Statement | None

Find the statement this node is contained in

path

Path

programming_language

resolved_value

Returns the resolved type of an Expression.

source

str

Text representation of the Editable instance.

start_byte

int

Returns the starting byte position of a file in its content.

symbols_sorted_topologically

list[ Symbol ]

Returns all Symbols in the file, sorted topologically (parents first). Robust to

ts_config

TSConfig | None

ts_node

TSNode

types

list[ TSTypeAlias ]

Returns all type aliases in the file.

variable_usages

list[ Editable ]

Returns Editables for all TreeSitter node instances of variable usages within this node's

Methods

add_decorator

Adds a decorator to a function or method.

View Source on Github

Parameters

new_decorator
str
required

The decorator to add, including the '@' symbol.

skip_if_exists
bool, optional
default:False

If True, skips adding if the decorator exists.

Returns

bool

True if the decorator was added, False if skipped.

add_export_to_symbol

Adds an export keyword to a symbol in a TypeScript file.

View Source on Github

Parameters

symbol
required

The TypeScript symbol (function, class, interface, etc.) to be exported.

Returns

None

add_import_from_import_string

Adds import to the file from a string representation of an import statement.

View Source on Github

Parameters

import_string
str
required

The string representation of the import statement to add.

Returns

None

add_symbol

Adds symbol to the file.

View Source on Github

Parameters

symbol
required

The symbol to add to the file.

should_export
bool, optional
default:True

Whether to export the symbol. Defaults to True.

Returns

Symbol | None

The existing symbol if it already exists in the file or None if it was added.

add_symbol_from_source

Adds a symbol to a file from a string representation.

View Source on Github

Parameters

source
str
required

String representation of the symbol to be added. This should be valid source code for

Returns

None

The symbol is added directly to the file's content.

add_symbol_import

Adds an import to a file for a given symbol.

View Source on Github

Parameters

symbol
required

The symbol to import.

alias
str | None
default:None

Optional alias for the imported symbol. Defaults to None.

import_type
ImportType
default:ImportType.UNKNOWN

The type of import to use. Defaults to ImportType.UNKNOWN.

is_type_import
bool
default:False

Whether this is a type-only import. Defaults to False.

Returns

Import | None

The existing import for the symbol or None if it was added.

ancestors

Find all ancestors of the node of the given type. Does not return itself

View Source on Github

Returns

list[ Editable ]

edit

Replace the source of this Editable with new_src.

View Source on Github

Parameters

new_src
str
required

The new source text to replace the current text with.

fix_indentation
bool
default:False

If True, adjusts the indentation of `new_src` to match the current text's indentation level. Defaults to False.

priority
int
default:0

The priority of the edit transaction. Higher priority edits are applied first. Defaults to 0.

dedupe
bool
default:True

If True, deduplicates identical transactions. Defaults to True.

Returns

None

find

Find and return matching nodes or substrings within an Editable instance.

View Source on Github

Parameters

strings_to_match
Union[list[str], str]
required

One or more strings to search for.

exact
bool
default:False

If True, only return nodes whose source exactly matches one of the strings_to_match.

Returns

list[ Editable ]

A list of Editable instances that match the search criteria.

find_by_byte_range

Finds all editable objects that overlap with the given byte range in the file.

View Source on Github

Parameters

range
Range
required

The byte range to search within the file.

Returns

list[ Editable ]

A list of all Editable objects that overlap with the given range.

find_string_literals

Returns a list of string literals within this node’s source that match any of the given

View Source on Github

Parameters

strings_to_match
list[str]
required

A list of strings to search for in string literals.

fuzzy_match
bool
default:False

If True, matches substrings within string literals. If False, only matches exact strings. Defaults to False.

Returns

list[ Editable ]

A list of Editable objects representing the matching string literals.

flag

Adds a visual flag comment to the end of this Editable’s source text.

View Source on Github

Returns

CodeFlag[ TSFile ]

get_class

Returns a specific Class by full name. Returns None if not found.

View Source on Github

Parameters

name
str
required

The full name of the class to search for.

Returns

Class | None

The matching Class object if found, None otherwise.

get_component

Returns a specific JSX element from within this symbol’s JSX elements.

View Source on Github

Parameters

component_name
str
required

The name of the JSX component to find.

Returns

JSXElement [ TSFile ] | None

The matching JSX element if found, None otherwise.

get_config

Returns the nearest tsconfig.json applicable to this file.

View Source on Github

Returns

TSConfig | None

The TypeScript configuration object if found, None otherwise.

get_export

Returns an export object with the specified name from the file.

View Source on Github

Parameters

export_name
str
required

The name of the export to find.

Returns

TSExport | None

The export object if found, None otherwise.

get_export_statement_for_path

Gets the first export of specified type that contains the given path in single or double quotes.

View Source on Github

Parameters

relative_path
str
required

The path to check for in export statements

export_type
str
default:"EXPORT"

Type of export to get - "WILDCARD", "TYPE", or "EXPORT" (default)

Returns

The first matching export if found, None otherwise.

get_extensions

Returns a list of file extensions that this class can parse.

View Source on Github

Returns

list[str]

A list of file extensions including '.tsx', '.ts', '.jsx', and '.js'.

get_function

Returns a specific Function by name.

View Source on Github

Parameters

name
str
required

The name of the function to find.

Returns

Function | None

The matching Function object if found, None otherwise.

get_global_var

Returns a specific global var by name. Returns None if not found.

View Source on Github

Parameters

name
str
required

The name of the global variable to find.

Returns

Assignment | None

The global variable if found, None otherwise.

get_import

Returns the import with matching alias. Returns None if not found.

View Source on Github

Parameters

symbol_alias
str
required

The alias name to search for. This can match either the direct import name or the aliased name.

Returns

Import | None

The import statement with the matching alias if found, None otherwise.

get_import_string

Generates and returns an import statement for the file.

View Source on Github

Parameters

alias
str | None
default:None

Alternative name for the imported module. Defaults to None.

module
str | None
default:None

Module path to import from. If None, uses file's default module name.

import_type
ImportType
default:ImportType.UNKNOWN

The type of import statement. Defaults to ImportType.UNKNOWN.

is_type_import
bool
default:False

Whether this is a type-only import. Defaults to False.

Returns

str

A formatted import statement string importing all exports from the module.

get_interface

Retrieves a specific interface from the file by its name.

View Source on Github

Parameters

name
str
required

The name of the interface to find.

Returns

The interface with the specified name if found, None otherwise.

get_name

Returns the name node of the object.

View Source on Github

Returns

The name node of the object. Can be a Name node for simple names, a ChainedAttribute for names with namespaces (e.g., a.b), or None if the object has no name.

get_namespace

Returns a specific namespace by name from the file’s namespaces.

View Source on Github

Parameters

name
str
required

The name of the namespace to find.

Returns

The namespace with the specified name if found, None otherwise.

get_symbol

Gets a symbol by its name from the file.

View Source on Github

Parameters

name
str
required

The name of the symbol to find.

Returns

Symbol | None

The found symbol, or None if not found.

get_type

Returns a specific Type by name from the file’s types.

View Source on Github

Parameters

name
str
required

The name of the type alias to retrieve.

Returns

The TypeScript type alias with the matching name, or None if not found.

get_variable_usages

Returns Editables for all TreeSitter nodes corresponding to instances of variable usage

View Source on Github

Parameters

var_name
str
required

The variable name to search for.

fuzzy_match
bool
default:False

If True, matches variables where var_name is a substring. If False, requires exact match. Defaults to False.

Returns

list[ Editable ]

List of Editable objects representing variable usage nodes matching the given name.

has_export_statement_for_path

Checks if the file has exports of specified type that contains the given path in single or double quotes.

View Source on Github

Parameters

relative_path
str
required

The path to check for in export statements

export_type
str
default:"EXPORT"

Type of export to check for - "WILDCARD", "TYPE", or "EXPORT" (default)

Returns

bool

True if there exists an export of specified type with the exact relative path (quoted) in its source, False otherwise.

has_import

Returns True if the file has an import with the given alias.

View Source on Github

Parameters

symbol_alias
str
required

The alias to check for in the import statements.

Returns

bool

True if an import with the given alias exists, False otherwise.

insert_after

Inserts code after this node.

View Source on Github

Parameters

new_src
str
required

The source code to insert after this node.

fix_indentation
bool, optional
default:False

Whether to adjust the indentation of new_src to match the current node. Defaults to False.

newline
bool, optional
default:True

Whether to add a newline before the new_src. Defaults to True.

priority
int, optional
default:0

Priority of the insertion transaction. Defaults to 0.

dedupe
bool, optional
default:True

Whether to deduplicate identical transactions. Defaults to True.

Returns

None

insert_before

Inserts text before this node’s source with optional indentation and newline handling.

View Source on Github

Parameters

new_src
str
required

The text to insert before this node.

fix_indentation
bool
default:False

Whether to fix the indentation of new_src to match the current node. Defaults to False.

newline
bool
default:True

Whether to add a newline after new_src. Defaults to True.

priority
int
default:0

Transaction priority for managing multiple edits. Defaults to 0.

dedupe
bool
default:True

Whether to deduplicate identical transactions. Defaults to True.

Returns

None

is_wrapped_in

Check if this node is contained another node of the given class

View Source on Github

Returns

bool

parent_of_type

Find the first ancestor of the node of the given type. Does not return itself

View Source on Github

Returns

Editable | None

reduce_condition

Reduces an editable to the following condition

View Source on Github

Returns

None

remove

Removes the file from the file system and graph.

View Source on Github

Returns

None

remove_unused_exports

Removes unused exports from the file.

View Source on Github

Returns

None

rename

Renames a symbol and updates all its references in the codebase.

View Source on Github

Parameters

new_name
str
required

The new name for the symbol.

priority
int
default:0

Priority of the edit operation. Defaults to 0.

Returns

tuple[NodeId, NodeId]

A tuple containing the file node ID and the new node ID of the renamed symbol.

replace

Search and replace occurrences of text within this node’s source and its extended nodes.

View Source on Github

Parameters

old
str
required

The text or pattern to search for.

new
str
required

The text to replace matches with.

count
int, optional
default:-1

Maximum number of replacements to make. Defaults to -1 (replace all).

is_regex
bool, optional
default:False

Whether to treat 'old' as a regex pattern. Defaults to False.

priority
int, optional
default:0

Priority of the replacement operation. Defaults to 0.

Returns

int

The total number of replacements made.

Returns a list of all regex match of regex_pattern, similar to python’s re.search().

View Source on Github

Parameters

regex_pattern
str
required

The regular expression pattern to search for.

include_strings
bool
default:True

When False, excludes the contents of string literals from the search. Defaults to True.

include_comments
bool
default:True

When False, excludes the contents of comments from the search. Defaults to True.

Returns

list[ Editable ]

A list of Editable objects corresponding to the matches found.

set_docstring

Sets or updates a docstring for a code element.

View Source on Github

Parameters

docstring
str
required

The docstring text to be added or updated.

auto_format
bool, optional
default:True

Whether to automatically format the text into a docstring format. Defaults to True.

clean_format
bool, optional
default:True

Whether to clean existing formatting from the docstring before inserting. Defaults to True.

leading_star
bool, optional
default:True

Whether to add leading "*" to each line of the comment block. Defaults to True.

force_multiline
bool, optional
default:False

Whether to force single line comments to be multi-line. Defaults to False.

Returns

None

set_name

Sets the name of a code element.

View Source on Github

Parameters

name
str
required

The new name to set for the object.

Returns

None

symbol_can_be_added

Determines if a TypeScript symbol can be added to this file based on its type and JSX compatibility.

View Source on Github

Parameters

symbol
required

The TypeScript symbol to be checked.

Returns

bool

True if the symbol can be added to this file, False otherwise.

symbol_usages

Returns a list of symbols that use or import the exportable object.

View Source on Github

Parameters

usage_types
UsageType | None
default:None

The types of usages to search for. Defaults to any.

Returns

list[ Import | Symbol | Export ]

A list of symbols that use or import the exportable object.

symbols

Returns all Symbols in the file, sorted by position in the file.

View Source on Github

Returns

list[ Symbol | Class | Function | Assignment | TInterface]

A list of all top-level symbols in the file, sorted by their position in the file. Symbols can be one of the following types: - Symbol: Base symbol class - TClass: Class definition - TFunction: Function definition - TGlobalVar: Global variable assignment - TInterface: Interface definition

update_filepath

Updates the file path of the current file and all associated imports.

View Source on Github

Parameters

new_filepath
str
required

The new file path to move the file to.

Returns

None

usages

Returns a list of usages of the exportable object.

View Source on Github

Parameters

usage_types
UsageType | None
default:None

Specifies which types of usages to include in the results. Default is any usages.

Returns

list[ Usage ]

A sorted list of Usage objects representing where this exportable is used, ordered by source location in reverse.