NodeObfuscator.js 1.2 KB

1234567891011121314151617181920212223242526272829
  1. "use strict";
  2. const Utils_1 = require('../Utils');
  3. class NodeObfuscator {
  4. constructor(nodes) {
  5. this.nodes = nodes;
  6. }
  7. replaceNodeIdentifierByNewValue(node, parentNode, namesMap) {
  8. if (node.type === 'Identifier' && namesMap.has(node.name)) {
  9. if ((parentNode.type === 'Property' && parentNode.key === node) ||
  10. (parentNode.type === 'MemberExpression' && parentNode.computed === false && parentNode.property === node)) {
  11. return;
  12. }
  13. node.name = namesMap.get(node.name);
  14. }
  15. }
  16. replaceLiteralStringByArrayElement(nodeValue) {
  17. let value = Utils_1.Utils.stringToUnicode(nodeValue), unicodeArray = this.nodes.get('unicodeArrayNode').getNodeData(), sameIndex = unicodeArray.indexOf(value), index;
  18. if (sameIndex < 0) {
  19. index = unicodeArray.length;
  20. unicodeArray.push(Utils_1.Utils.stringToUnicode(nodeValue));
  21. }
  22. else {
  23. index = sameIndex;
  24. }
  25. return `${this.nodes.get('unicodeArrayNode').getNodeIdentifier()}[${index}]`;
  26. }
  27. }
  28. exports.NodeObfuscator = NodeObfuscator;
  29. //# sourceMappingURL=NodeObfuscator.js.map