Skip to content

Instantly share code, notes, and snippets.

View perjansson's full-sized avatar

Per Jansson perjansson

View GitHub Profile
const transformer = (file, api) => {
const j = api.jscodeshift;
const root = j(file.source);
const multiLineArrays = path => {
const { loc } = path.node;
return loc.start.line < loc.end.line;
}
return root
const transformer = (file, api) => {
/* get the jscodeshift helper */
const j = api.jscodeshift;
/* create a js object representation of your source code */
const root = j(file.source);
return root
.find(/* grab the code you want to update */)
.forEach(/* do something to it */)
var CarList = React.createClass({
getInitialState: function() { }
setSelectedCar: function(selectedCar) { }
...
// becomes
class CarList extends React.Component {
state = { }
setSelectedCar = selectedCar => { }
cars: [
'Volvo',
'BMW',
'Tesla',
'Lada'
]
// becomes
cars: [
var state = { selectedCar: selectedCar }
// becomes
var state = { selectedCar }
var state = Object.assign({}, state.history, selectedCar.id)
// becomes
var state = { ...state.history, ...selectedCar.id }
var message = 'The best car is ' + randomCar
// becomes
var message = `The best car is ${randomCar}`
onClick={function(e) {
this.setSelectedCar(e.target.value)
}.bind(this)}
// becomes
onClick={e => this.setSelectedCar(e.target.value)}
var cars = this.cars.map(car => ...
var message = 'No cars'
if (cars.length) {
var randomCar = null
message = `The best car is ${randomCar}`
...
// becomes
const cars = this.cars.map(car => ...
class ProgressiveImage extends Component {
state = {
currentImage: this.props.preview,
loading: true,
}
componentDidMount() {
this.fetchImage(this.props.image)
}