react-native-decompiler
Version:
react native decompile apk and ipa(soon)
65 lines • 6.74 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const types_1 = require("@babel/types");
const plugin_1 = require("../../../plugin");
const arrayMap_1 = __importDefault(require("../../../util/arrayMap"));
class ToConsumableArrayCleaner extends plugin_1.Plugin {
constructor(args, module, moduleList) {
super(args, module, moduleList);
this.pass = 3;
this.callExpressions = new arrayMap_1.default();
const destructureDependency = moduleList.find((mod) => (mod === null || mod === void 0 ? void 0 : mod.moduleName) === '@babel/runtime/helpers/toConsumableArray');
this.moduleUsed = (destructureDependency === null || destructureDependency === void 0 ? void 0 : destructureDependency.moduleId) != null && module.dependencies.includes(destructureDependency === null || destructureDependency === void 0 ? void 0 : destructureDependency.moduleId);
}
getVisitor() {
if (!this.moduleUsed)
return {};
return {
CallExpression: (path) => {
var _a;
if (!types_1.isIdentifier(path.node.callee))
return;
const bindingLocation = (_a = path.scope.getBindingIdentifier(path.node.callee.name)) === null || _a === void 0 ? void 0 : _a.start;
if (bindingLocation == null)
return;
this.callExpressions.push(bindingLocation, path);
},
VariableDeclarator: (path) => {
var _a, _b;
if (this.moduleVarPath || !types_1.isIdentifier(path.node.id) || !types_1.isCallExpression(path.node.init))
return;
const init = path.get('init');
if (!init.isCallExpression())
return;
const moduleDependency = this.getModuleDependency(init);
if ((moduleDependency === null || moduleDependency === void 0 ? void 0 : moduleDependency.moduleName) !== '@babel/runtime/helpers/toConsumableArray')
return;
this.moduleVarPath = path;
this.moduleBindingLocation = (_b = (_a = path.scope.getBindingIdentifier(path.node.id.name)) === null || _a === void 0 ? void 0 : _a.start) !== null && _b !== void 0 ? _b : undefined;
},
};
}
afterPass() {
if (this.moduleBindingLocation != null && this.moduleVarPath) {
if (!this.moduleVarPath.removed) {
this.moduleVarPath.remove();
}
this.callExpressions.forEachElement(this.moduleBindingLocation, (exp) => {
if (types_1.isVariableDeclarator(exp.parent) && types_1.isIdentifier(exp.parent.id) && types_1.isIdentifier(exp.node.arguments[0])) {
exp.scope.rename(exp.parent.id.name, exp.node.arguments[0].name);
if (!exp.parentPath.removed) {
exp.parentPath.remove();
}
}
else {
exp.replaceWith(exp.node.arguments[0]);
}
});
}
}
}
exports.default = ToConsumableArrayCleaner;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9Db25zdW1hYmxlQXJyYXlDbGVhbmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2RlY29tcGlsZXJzL2JhYmVsL2NsZWFuZXJzL3RvQ29uc3VtYWJsZUFycmF5Q2xlYW5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQWVBLHdDQU1zQjtBQUN0Qiw0Q0FBeUM7QUFFekMsc0VBQThDO0FBTTlDLE1BQXFCLHdCQUF5QixTQUFRLGVBQU07SUFRMUQsWUFBWSxJQUFhLEVBQUUsTUFBYyxFQUFFLFVBQW9CO1FBQzdELEtBQUssQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBUnpCLFNBQUksR0FBRyxDQUFDLENBQUM7UUFLVixvQkFBZSxHQUErQyxJQUFJLGtCQUFRLEVBQUUsQ0FBQztRQUtuRixNQUFNLHFCQUFxQixHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUEsR0FBRyxhQUFILEdBQUcsdUJBQUgsR0FBRyxDQUFFLFVBQVUsTUFBSywwQ0FBMEMsQ0FBQyxDQUFDO1FBQ3ZILElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQSxxQkFBcUIsYUFBckIscUJBQXFCLHVCQUFyQixxQkFBcUIsQ0FBRSxRQUFRLEtBQUksSUFBSSxJQUFJLE1BQU0sQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLHFCQUFxQixhQUFyQixxQkFBcUIsdUJBQXJCLHFCQUFxQixDQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzdILENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFFaEMsT0FBTztZQUNMLGNBQWMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFOztnQkFDdkIsSUFBSSxDQUFDLG9CQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7b0JBQUUsT0FBTztnQkFFNUMsTUFB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