in transforms/rename-unsafe-lifecycles.js [16:62]
export default (file, api, options) => {
const j = api.jscodeshift;
const printOptions = options.printOptions || {
quote: 'single',
trailingComma: true
};
const root = j(file.source);
let hasModifications = false;
const renameDeprecatedApis = path => {
const name = path.node.key.name;
if (DEPRECATED_APIS[name]) {
path.value.key.name = DEPRECATED_APIS[name];
hasModifications = true;
}
};
const renameDeprecatedCallExpressions = path => {
const name = path.node.property.name;
if (DEPRECATED_APIS[name]) {
path.node.property.name = DEPRECATED_APIS[name];
hasModifications = true;
}
};
// Class methods
root.find(j.MethodDefinition).forEach(renameDeprecatedApis);
// Class methods - typescript
root.find(j.ClassMethod).forEach(renameDeprecatedApis);
// Arrow functions
root.find(j.ClassProperty).forEach(renameDeprecatedApis);
// createReactClass and mixins
root.find(j.Property).forEach(renameDeprecatedApis);
// Function calls
root.find(j.MemberExpression).forEach(renameDeprecatedCallExpressions);
return hasModifications ? root.toSource(printOptions) : null;
};