Comments (5)
Recast (ast-types actually) provides two APIs: One lets you access the underlying "raw" AST node, with .value
or .node
, as you already know. The other gives you a NodePath
instead of the raw AST node value.
Examples:
var args = path.value.arguments; // array of AST nodes
var args = path.get('arguments'); // NodePath representing the array of AST nodes
.get
takes multiple arguments. To get the NodePath
to the first AST node in arguments
, you can do:
var pathToFirstArg = path.get('arguments', 0); // or args.get(0) from above
See also https://github.com/benjamn/ast-types#nodepath .
Wrapping the element with
j()
gives me ...
j
will always return a collection of NodePath
s.
from jscodeshift.
Perfect. Thanks, that helped me get there.
Do you have any thoughts as to where I should put this codemod transform? I'm either going to start a repo myself or open a PR to a pre-existing collection of transforms. Do you have any opinions on where it should go?
I imagine there is a lot of value for people who start without Babel/JSX and want to convert their codebase later to use JSX.
from jscodeshift.
Feel free to create your own repo or send a PR to https://github.com/cpojer/js-codemod which I have used as a collection of useful codemods that I ran at FB.
from jscodeshift.
@cpojer: What about https://github.com/reactjs/react-codemod ? Is that more for API changes between versions?
from jscodeshift.
Oh yeah, react-codemod is fine for React specific codemods.
from jscodeshift.
Related Issues (20)
- URL transform doesn't work with TypeScript HOT 2
- Can't see file in current working directory - "Skipping path which does not exist." HOT 2
- Ignore pattern doesn't work with relative paths starting with two dots (../) HOT 1
- Automatically publish latest dev version to npm HOT 1
- Declaration has "null" loc field when inside export HOT 1
- missing semicolon how to fix this HOT 9
- how can I add @babel/plugin-proposal-private-methods to jscodeshift ? HOT 5
- extensions cli option not respected when passing individual file paths
- cannot replace JSX nodes within render props
- Added parenthesis around await expression in if statement HOT 4
- Updating setter function's parameter cause invalid output HOT 4
- Easiest way to insert a comment at the beginning of a file? HOT 3
- Generics are being removed from JSX Elements HOT 2
- Unit Tests Broken? HOT 1
- Last npm release (0.15) is ~6 months old HOT 2
- how to remove empty line using jscodeshift? HOT 1
- WSL2 - Can't install project with jscodeshift in dependencies HOT 1
- Enable parsing of `accessor` keyword HOT 6
- testOptions aren't propagated through some of the test methods
- [Bug] [email protected] ignores the files not starting with `.js` extension by default HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from jscodeshift.