ConsoleOutputCustomNodesFactory.ts 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import { ICustomNode } from '../../../interfaces/custom-nodes/ICustomNode';
  2. import { IObfuscationEventEmitter } from '../../../interfaces/IObfuscationEventEmitter';
  3. import { IStackTraceData } from '../../../interfaces/stack-trace-analyzer/IStackTraceData';
  4. import { ConsoleOutputDisableExpressionNode } from '../ConsoleOutputDisableExpressionNode';
  5. import { NodeCallsControllerFunctionNode } from '../../node-calls-controller-nodes/NodeCallsControllerFunctionNode';
  6. import { AbstractCustomNodesFactory } from '../../AbstractCustomNodesFactory';
  7. import { NodeAppender } from '../../../node/NodeAppender';
  8. import { Utils } from '../../../Utils';
  9. export class ConsoleOutputCustomNodesFactory extends AbstractCustomNodesFactory {
  10. /**
  11. * @param obfuscationEventEmitter
  12. * @param stackTraceData
  13. * @returns {Map<string, ICustomNode>}
  14. */
  15. public initializeCustomNodes (
  16. obfuscationEventEmitter: IObfuscationEventEmitter,
  17. stackTraceData: IStackTraceData[]
  18. ): Map <string, ICustomNode> | undefined {
  19. if (!this.options.disableConsoleOutput) {
  20. return;
  21. }
  22. const callsControllerFunctionName: string = Utils.getRandomVariableName();
  23. const randomStackTraceIndex: number = NodeAppender.getRandomStackTraceIndex(stackTraceData.length);
  24. return this.syncCustomNodesWithNodesFactory(obfuscationEventEmitter, new Map <string, ICustomNode> ([
  25. [
  26. 'consoleOutputDisableExpressionNode',
  27. new ConsoleOutputDisableExpressionNode(
  28. stackTraceData,
  29. callsControllerFunctionName,
  30. randomStackTraceIndex,
  31. this.options
  32. )
  33. ],
  34. [
  35. 'ConsoleOutputNodeCallsControllerFunctionNode',
  36. new NodeCallsControllerFunctionNode(
  37. stackTraceData,
  38. callsControllerFunctionName,
  39. randomStackTraceIndex,
  40. this.options
  41. )
  42. ]
  43. ]));
  44. }
  45. }