NodeObfuscator.js 1.2 KB

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