TSFunction
Representation of a Function in JavaScript/TypeScript
View source on GitHub
Inherits from
TSHasBlock, TSSymbol, Function, HasBlock, Exportable, Symbol, Callable, Expression, Usable, Editable, Importable, HasName
Attributes
call_sites
Returns all call sites (invocations) of this callable in the codebase.
code_block
The block of code associated with the code object.
comment
Retrieves the comment group associated with the symbol.
decorators
Returns a list of decorators associated with this symbol.
docstring
Retrieves the docstring of a function or class.
export
Returns the export object that exports this symbol.
exported_name
Retrieves the exported name of a symbol from its file.
extended
Returns a SymbolGroup of all extended nodes associated with this element.
extended_nodes
Returns the list of nodes associated with this symbol including extended nodes.
extended_source
Returns the source text representation of all extended nodes.
file
The file object that this Editable instance belongs to.
filepath
The file path of the file that this Editable instance belongs to.
full_name
Returns the full name of the object, including the namespace path.
function_calls
Gets all function calls within the function and its parameters.
function_signature
Returns a string representation of the function's signature.
function_type
Gets the type of function from its TreeSitter node.
has_semicolon
Checks whether the current symbol has a semicolon at the end.
inferred_return_type
Gets the inferred type of the function from the language's native language engine / compiler.
inline_comment
Property that retrieves the inline comment group associated with the symbol.
is_anonymous
Property indicating whether a function is anonymous.
is_arrow
Returns True iff the function is an arrow function.
is_async
Determines if the function is asynchronous.
is_constructor
Determines if the current function is a constructor method.
is_decorated
Checks if the current symbol has a decorator.
is_exported
Indicates if the symbol is exported from its defining file.
is_jsx
Determines if the function is a React component by checking if it returns a JSX element.
is_magic
Returns whether this method is a magic method.
is_method
Returns whether the function is a method of a class.
is_overload
Indicates whether the function is an overloaded function in a multi-function definition.
is_private
Determines if a function is private based on its accessibility modifier.
is_property
Determines if the function is a property.
is_reexported
Determines if the symbol is re-exported from a different file.
jsx_elements
Returns a list of all JSX elements contained within this symbol.
name
Retrieves the base name of the object without namespace prefixes.
nested_functions
Returns a list of nested functions defined within this function's code block.
parameters
Retrieves all parameters of a callable symbol.
parent
The parent node of this Editable instance.
parent_class
Find the class this node is contained in
parent_function
Find the function this node is contained in
parent_statement
Find the statement this node is contained in
promise_chains
Returns a list of promise chains in the function.
resolved_value
Returns the resolved type of an Expression.
return_statements
Returns a list of all return statements within this function's body.
return_type
The type of value returned by the callable, or a placeholder.
semicolon_node
Retrieves the semicolon node associated with a TypeScript symbol.
source
Returns the source code of the symbol.
symbol_type
The type of symbol, set to SymbolType.Function.
type_parameters
The type parameters of the symbol, if any.
variable_usages
Returns Editables for all TreeSitter node instances of variable usages within this node's
Methods
add_comment
Adds a new comment to the symbol.
View source on GitHub
Parameters
commentrequiredThe comment text to be added.
auto_formatdefault: TrueWhether to automatically format the text into a comment style. Defaults to True.
clean_formatdefault: TrueWhether to clean the format of the comment before inserting. Defaults to True.
comment_typedefault: TSCommentType.DOUBLE_SLASHType of comment to add. Defaults to TSCommentType.DOUBLE_SLASH.
Returns
add_decorator
Adds a decorator to a function or method.
View source on GitHub
Parameters
new_decoratorrequiredThe decorator to add, including the '@' symbol.
skip_if_existsdefault: FalseIf True, skips adding if the decorator exists.
Returns
True if the decorator was added, False if skipped.
add_keyword
Insert a keyword in the appropriate place before this symbol if it doesn't already exist.
View source on GitHub
Parameters
keywordrequiredThe keyword to be inserted. Must be a valid keyword in the language context.
Returns
add_statements
Adds statements to the end of a function body.
View source on GitHub
Parameters
linesrequiredThe lines of code to be added at the end of the function body.
Returns
ancestors
Find all ancestors of the node of the given type. Does not return itself
View source on GitHub
Returns
arrow_to_named
Converts an arrow function to a named function in TypeScript/JavaScript.
View source on GitHub
Parameters
namedefault: NoneThe name for the converted function. If None, uses the name of the variable
Returns
asyncify
Modifies the function to be asynchronous, if it is not already.
View source on GitHub
Returns
convert_props_to_interface
Converts React component props to TypeScript interfaces.
View source on GitHub
Returns
dependencies
Returns a list of symbols that this symbol depends on.
View source on GitHub
Parameters
usage_typesdefault: UsageType.DIRECTThe types of dependencies to search for. Defaults to UsageType.DIRECT.
max_depthdefault: NoneMaximum depth to traverse in the dependency graph. If provided, will recursively collect
Returns
A list of symbols and imports that this symbol depends on, sorted by file location.
edit
Replace the source of this node with new_src.
View source on GitHub
Parameters
new_srcrequiredThe new source code to replace the current source with.
fix_indentationdefault: FalseIf True, adjusts the indentation of new_src to match the current text's indentation. Defaults to False.
prioritydefault: 0The priority of this edit. Higher priority edits take precedence. Defaults to 0.
dedupedefault: TrueIf True, prevents duplicate edits. Defaults to True.
Returns
find
Find and return matching nodes or substrings within an Editable instance.
View source on GitHub
Parameters
strings_to_matchrequiredOne or more strings to search for.
exactdefault: FalseIf True, only return nodes whose source exactly matches one of the strings_to_match.
Returns
A list of Editable instances that match the search criteria.
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_matchrequiredA list of strings to search for in string literals.
fuzzy_matchdefault: FalseIf True, matches substrings within string literals. If False, only matches exact strings. Defaults to False.
Returns
A list of Editable objects representing the matching string literals.
flag
Flags a TypeScript symbol by adding a flag comment and returning a CodeFlag.
View source on GitHub
Returns
The code flag object for tracking purposes
get_component
Returns a specific JSX element from within this symbol's JSX elements.
View source on GitHub
Parameters
component_namerequiredThe name of the JSX component to find.
Returns
The matching JSX element if found, None otherwise.
get_import_string
Generates the appropriate import string for a symbol.
View source on GitHub
Parameters
aliasdefault: NoneThe alias to use for the imported symbol. Defaults to None.
moduledefault: NoneThe module to import from. If None, uses the file's import module name.
import_typedefault: ImportType.UNKNOWNThe type of import to generate (e.g., WILDCARD). Defaults to
is_type_importdefault: FalseWhether this is a type-only import. Defaults to False.
Returns
A formatted import statement string.
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_parameter
Gets a specific parameter from the callable's parameters list by name.
View source on GitHub
Parameters
namerequiredThe name of the parameter to retrieve.
Returns
The parameter with the specified name, or None if no parameter with that name exists or if there are no parameters.
get_parameter_by_index
Returns the parameter at the given index.
View source on GitHub
Parameters
indexrequiredThe index of the parameter to retrieve.
Returns
The parameter at the specified index, or None if the parameter list is empty or the index does not exist.
get_parameter_by_type
Retrieves a parameter from the callable by its type.
View source on GitHub
Parameters
typerequiredThe type to search for.
Returns
The parameter with the specified type, or None if no parameter is found or if the callable has no parameters.
get_variable_usages
Returns Editables for all TreeSitter nodes corresponding to instances of variable usage
View source on GitHub
Parameters
var_namerequiredThe variable name to search for.
fuzzy_matchdefault: FalseIf True, matches variables where var_name is a substring. If False, requires exact match. Defaults to False.
Returns
List of Editable objects representing variable usage nodes matching the given name.
insert_after
Inserts code after this node.
View source on GitHub
Parameters
new_srcrequiredThe source code to insert after this node.
fix_indentationdefault: FalseWhether to adjust the indentation of new_src to match the current node. Defaults to False.
newlinedefault: TrueWhether to add a newline before the new_src. Defaults to True.
prioritydefault: 0Priority of the insertion transaction. Defaults to 0.
dedupedefault: TrueWhether to deduplicate identical transactions. Defaults to True.
Returns
insert_before
Inserts text before the current symbol node in the Abstract Syntax Tree.
View source on GitHub
Parameters
new_srcrequiredThe source code text to insert.
fix_indentationdefault: FalseWhether to adjust the indentation of new_src to match current text. Defaults to False.
newlinedefault: TrueWhether to add a newline after insertion. Defaults to True.
prioritydefault: 0Priority of this edit operation. Higher priority edits are applied first. Defaults to 0.
dedupedefault: TrueWhether to remove duplicate insertions. Defaults to True.
extendeddefault: TrueWhether to insert before extended nodes like comments and decorators. Defaults to True.
Returns
insert_statements
Inserts lines of code into the function body at the specified index.
View source on GitHub
Parameters
linesrequiredThe code lines to insert into the function body.
indexdefault: 0The position in the function body where the lines should be inserted. Defaults to 0.
Returns
is_child_of
Checks if this node is a descendant of the given editable instance in the AST.
View source on GitHub
Returns
is_valid_node
Determines if a given tree-sitter node corresponds to a valid function type.
View source on GitHub
Parameters
noderequiredThe tree-sitter node to validate.
Returns
True if the node's type is a valid function type, False otherwise.
is_wrapped_in
Check if this node is contained another node of the given class
View source on GitHub
Returns
move_to_file
Moves the given symbol to a new file and updates its imports and references.
View source on GitHub
Parameters
filerequiredThe destination file to move the symbol to.
include_dependenciesdefault: TrueIf True, moves all dependencies of the symbol to the new file. If False, adds imports for the dependencies. Defaults to True.
strategydefault: "update_all_imports"The strategy to use for updating imports. Can be either 'add_back_edge' or 'update_all_imports'. Defaults to 'update_all_imports'.
Returns
parent_of_type
Find the first ancestor of the node of the given type. Does not return itself
View source on GitHub
Returns
parent_of_types
Find the first ancestor of the node of the given type. Does not return itself
View source on GitHub
Returns
prepend_statements
Prepends the provided code to the beginning of the function body.
View source on GitHub
Parameters
linesrequiredThe code to be prepended to the function body.
Returns
reduce_condition
Reduces an editable to the following condition
View source on GitHub
Returns
remove
Deletes this Node and its related extended nodes (e.g. decorators, comments).
View source on GitHub
Parameters
delete_formattingdefault: TrueWhether to delete surrounding whitespace and formatting. Defaults to True.
prioritydefault: 0Priority of the removal transaction. Higher priority transactions are executed first. Defaults to 0.
dedupedefault: TrueWhether to deduplicate removal transactions at the same location. Defaults to True.
Returns
rename
Renames a symbol and updates all its references in the codebase.
View source on GitHub
Parameters
new_namerequiredThe new name for the symbol.
prioritydefault: 0Priority of the edit operation. Defaults to 0.
Returns
A tuple containing the file node ID and the new node ID of the renamed symbol.
rename_local_variable
Renames a local variable and all its usages within a function body.
View source on GitHub
Parameters
old_var_namerequiredThe current name of the local variable to be renamed.
new_var_namerequiredThe new name to give to the local variable.
fuzzy_matchdefault: FalseIf True, matches variable names that contain old_var_name. Defaults to False.
Returns
The method modifies the AST in place.
replace
Search and replace occurrences of text within this node's source and its extended nodes.
View source on GitHub
Parameters
oldrequiredThe text or pattern to search for.
newrequiredThe text to replace matches with.
countdefault: -1Maximum number of replacements to make. Defaults to -1 (replace all).
is_regexdefault: FalseWhether to treat 'old' as a regex pattern. Defaults to False.
prioritydefault: 0Priority of the replacement operation. Defaults to 0.
Returns
The total number of replacements made.
search
Returns a list of all regex match of regex_pattern, similar to python's re.search().
View source on GitHub
Parameters
regex_patternrequiredThe regular expression pattern to search for.
include_stringsdefault: TrueWhen False, excludes the contents of string literals from the search. Defaults to True.
include_commentsdefault: TrueWhen False, excludes the contents of comments from the search. Defaults to True.
Returns
A list of Editable objects corresponding to the matches found.
set_comment
Sets a comment to the symbol.
View source on GitHub
Parameters
commentrequiredThe comment text to be added.
auto_formatdefault: TrueWhether to automatically format the text into a comment syntax.
clean_formatdefault: TrueWhether to clean the format of the comment before inserting.
comment_typedefault: TSCommentType.DOUBLE_SLASHThe style of comment to add.
Returns
set_docstring
Sets or updates a docstring for a code element.
View source on GitHub
Parameters
docstringrequiredThe docstring text to be added or updated.
auto_formatdefault: TrueWhether to automatically format the text into a docstring format. Defaults to True.
clean_formatdefault: TrueWhether to clean existing formatting from the docstring before inserting. Defaults to True.
leading_stardefault: TrueWhether to add leading "*" to each line of the comment block. Defaults to True.
force_multilinedefault: FalseWhether to force single line comments to be multi-line. Defaults to False.
Returns
set_inline_comment
Sets an inline comment to the symbol.
View source on GitHub
Parameters
commentrequiredThe inline comment text to be added.
auto_formatdefault: TrueWhether to automatically format the text as a comment.
clean_formatdefault: TrueWhether to clean the comment format before inserting.
nodedefault: NoneThe specific node to attach the comment to.
Returns
set_name
Sets the name of a code element.
View source on GitHub
Parameters
namerequiredThe new name to set for the object.
Returns
set_return_type
Sets the return type annotation for the function.
View source on GitHub
Parameters
new_return_typerequiredThe new return type annotation to be set. Use an empty string to remove
Returns
symbol_usages
Returns a list of symbols that use or import the exportable object.
View source on GitHub
Parameters
usage_typesdefault: NoneThe types of usages to search for. Defaults to any.
Returns
A list of symbols that use or import the exportable object.
usages
Returns a list of usages of the exportable object.
View source on GitHub
Parameters
usage_typesdefault: NoneSpecifies which types of usages to include in the results. Default is any usages.
Returns
A sorted list of Usage objects representing where this exportable is used, ordered by source location in reverse.