const chooseJSCodeshiftParser = require('jscodeshift-choose-parser')Intelligently chooses a parser for a given file. Basically:
- If extension is
.tsor.tsxreturn'ts'/'tsx'depending on extension - Else if
@babel/coreis installed, return parser that uses with@babel/coreusing local babel config - Else return
undefined
The default babylon parser in jscodeshift does not use your local babel config AFAIK. This package
returns a parser that does use your local babel config.
const chooseJSCodeshiftParser = require('jscodeshift-choose-parser')
module.exports = function(fileInfo, api) {
const parser = chooseJSCodeshiftParser(fileInfo.path)
return api.jscodeshift
.withParser(parser)(fileInfo.source)
.findVariableDeclarators('foo')
.renameTo('bar')
.toSource()
}