vanzy-protect
Version:
Epic Obfuscator Yeahhh
38 lines (37 loc) • 1.35 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.memberExpression = void 0;
const cfg_1 = require("../config/cfg");
const obfuscateName_1 = require("../obfuscate/obfuscateName");
const stringObf_1 = require("../obfuscate/stringObf");
const awaitExpression_1 = require("./awaitExpression");
const rightExpression_1 = require("./rightExpression");
function memberExpression({ object, property, computed, optional }) {
var data = '(';
if (object.type === 'MemberExpression') {
data += memberExpression(object);
}
else if (object.type === 'Identifier') {
const name = object.name;
data += (0, cfg_1.cfg)().transforms.obfuscateNames ? (0, obfuscateName_1.obfuscateName)(name) : name;
}
else if (object.type === 'AwaitExpression') {
data += '(' + (0, awaitExpression_1.awaitExpression)(object) + ')';
}
else {
data += (0, rightExpression_1.rightExpression)(object);
}
data += ')';
if (optional)
data += '?.';
data += '[';
if (computed) {
data += (0, rightExpression_1.rightExpression)(property);
}
else {
data += (0, stringObf_1.stringObf)(property.name, (0, cfg_1.cfg)().transforms.keyObfuscationLevel);
}
data += ']';
return data;
}
exports.memberExpression = memberExpression;