react-native-decompiler
Version:
react native decompile apk and ipa(soon)
30 lines • 3.36 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const types_1 = require("@babel/types");
const plugin_1 = require("../../plugin");
class SetStateRenamer extends plugin_1.Plugin {
constructor() {
super(...arguments);
this.pass = 4;
}
getVisitor() {
return {
VariableDeclaration: (path) => {
path.node.declarations.forEach((varNode) => {
if (!types_1.isArrayPattern(varNode.id) || varNode.id.elements.length !== 2 || !types_1.isIdentifier(varNode.id.elements[0]) || !types_1.isIdentifier(varNode.id.elements[1]))
return;
if (!types_1.isCallExpression(varNode.init) || !types_1.isMemberExpression(varNode.init.callee))
return;
if (!types_1.isIdentifier(varNode.init.callee.object) || !types_1.isIdentifier(varNode.init.callee.property))
return;
if (varNode.init.callee.object.name !== 'React' || varNode.init.callee.property.name !== 'useState')
return;
path.parentPath.scope.crawl();
path.parentPath.scope.rename(varNode.id.elements[1].name, `set${varNode.id.elements[0].name[0].toUpperCase()}${varNode.id.elements[0].name.slice(1)}`);
});
},
};
}
}
exports.default = SetStateRenamer;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0U3RhdGVSZW5hbWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2RlY29tcGlsZXJzL3JlYWN0L3NldFN0YXRlUmVuYW1lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWdCQSx3Q0FLc0I7QUFDdEIseUNBQXNDO0FBS3RDLE1BQXFCLGVBQWdCLFNBQVEsZUFBTTtJQUFuRDs7UUFFVyxTQUFJLEdBQUcsQ0FBQyxDQUFDO0lBbUJwQixDQUFDO0lBakJDLFVBQVU7UUFDUixPQUFPO1lBQ0wsbUJBQW1CLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7b0JBRXpDLElBQUksQ0FBQyxzQkFBYyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsSUFBSSxPQUFPLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsb0JBQVksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsb0JBQVksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFBRSxPQUFPO29CQUc5SixJQUFJLENBQUMsd0JBQWdCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsMEJBQWtCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7d0JBQUUsT0FBTztvQkFDeEYsSUFBSSxDQUFDLG9CQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxvQkFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQzt3QkFBRSxPQUFPO29CQUNyRyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssT0FBTyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssVUFBVTt3QkFBRSxPQUFPO29CQUM1RyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDOUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxNQUFNLE9BQU8sQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDekosQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDO1NBQ0YsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQXJCRCxrQ0FxQkMifQ==