Constructor
new Collection(paths, parent, types)
Parameters:
Name | Type | Description |
---|---|---|
paths |
Array | An array of AST paths |
parent |
Collection | A parent collection |
types |
Array | An array of types all the paths in the collection have in common. If not passed, it will be inferred from the paths. |
- Mixes In:
- Source:
Members
length
Returns the number of elements in this collection.
- Source:
Methods
at(index) → {Collection}
Returns a new collection containing only the element at position index.
In case of a negative index, the element is taken from the end:
.at(0) - first element
.at(-1) - last element
Parameters:
Name | Type | Description |
---|---|---|
index |
number |
- Source:
Returns:
- Type
- Collection
childElements() → {JSXElementCollection}
Returns all children that are JSXElements.
- Mixes In:
- Source:
Returns:
- Type
- JSXElementCollection
childNodes() → {Collection}
Returns all child nodes, including literals and expressions.
- Mixes In:
- Source:
Returns:
- Type
- Collection
closest() → {Collection}
Traverse the AST up and finds the closest node of the provided type.
Parameters:
Type | Description |
---|---|
Collection | |
filter |
- Mixes In:
- Source:
Returns:
- Type
- Collection
closestScope() → {Collection}
Returns a collection containing the paths that create the scope of the
currently selected paths. Dedupes the paths.
- Mixes In:
- Source:
Returns:
- Type
- Collection
filter(callback) → {Collection}
Returns a new collection containing the nodes for which the callback
returns true.
Parameters:
Name | Type | Description |
---|---|---|
callback |
function |
- Source:
Returns:
- Type
- Collection
find() → {Collection}
Find nodes of a specific type within the nodes of this collection.
Parameters:
Type | Description |
---|---|
type | |
filter |
- Mixes In:
- Source:
Returns:
- Type
- Collection
findJSXElements(name) → {Collection}
Finds all JSXElements optionally filtered by name
Parameters:
Name | Type | Description |
---|---|---|
name |
string |
- Mixes In:
- Source:
Returns:
- Type
- Collection
findJSXElementsByModuleName()
Finds all JSXElements by module name. Given
var Bar = require('Foo');
findJSXElementsByModuleName('Foo') will find , without having to
know the variable name.
- Mixes In:
- Source:
findVariableDeclarators(name) → {Collection}
Finds all variable declarators, optionally filtered by name.
Parameters:
Name | Type | Description |
---|---|---|
name |
string |
- Mixes In:
- Source:
Returns:
- Type
- Collection
forEach(callback) → {Collection}
Executes callback for each node/path in the collection.
Parameters:
Name | Type | Description |
---|---|---|
callback |
function |
- Source:
Returns:
The collection itself
- Type
- Collection
get()
Proxies to NodePath#get of the first path.
Parameters:
Name | Type | Description |
---|---|---|
...fields |
string | number |
- Source:
getTypes() → {Array.<string>}
Returns the type(s) of the collection. This is only used for unit tests,
I don't think other consumers would need it.
- Source:
Returns:
- Type
- Array.<string>
getVariableDeclarators(nameGetter) → {Collection}
Finds the declaration for each selected path. Useful for member expressions
or JSXElements. Expects a callback function that maps each path to the name
to look for.
If the callback returns a falsey value, the element is skipped.
Parameters:
Name | Type | Description |
---|---|---|
nameGetter |
function |
- Mixes In:
- Source:
Returns:
- Type
- Collection
insertAfter(insert) → {Collection}
Inserts a new node after the current one.
Parameters:
Name | Type | Description |
---|---|---|
insert |
Node | Array.<Node> | function |
- Mixes In:
- Source:
Returns:
- Type
- Collection
insertBefore(insert) → {Collection}
Inserts a new node before the current one.
Parameters:
Name | Type | Description |
---|---|---|
insert |
Node | Array.<Node> | function |
- Mixes In:
- Source:
Returns:
- Type
- Collection
isOfType(type) → {boolean}
Returns true if this collection has the type 'type'.
Parameters:
Name | Type | Description |
---|---|---|
type |
Type |
- Source:
Returns:
- Type
- boolean
map(callback, type)
Executes the callback for every path in the collection and returns a new
collection from the return values (which must be paths).
The callback can return null to indicate to exclude the element from the
new collection.
If an array is returned, the array will be flattened into the result
collection.
Parameters:
Name | Type | Description |
---|---|---|
callback |
function | |
type |
Type | Force the new collection to be of a specific type |
- Source:
nodes() → {Array}
Returns an array of AST nodes in this collection.
- Source:
Returns:
- Type
- Array
renameTo(newName) → {Collection}
Renames a variable and all its occurrences.
Parameters:
Name | Type | Description |
---|---|---|
newName |
string |
- Mixes In:
- Source:
Returns:
- Type
- Collection
replaceWith(nodes) → {Collection}
Simply replaces the selected nodes with the provided node. If a function
is provided it is executed for every node and the node is replaced with the
functions return value.
Parameters:
Name | Type | Description |
---|---|---|
nodes |
Node | Array.<Node> | function |
- Mixes In:
- Source:
Returns:
- Type
- Collection
size() → {number}
Returns the number of elements in this collection.
- Source:
Returns:
- Type
- number