ConsoleOutputDisableExpressionNode.ts 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. import * as ESTree from 'estree';
  2. import { TNodeWithBlockStatement } from '../../types/TNodeWithBlockStatement';
  3. import { IStackTraceData } from '../../interfaces/stack-trace-analyzer/IStackTraceData';
  4. import { AppendState } from '../../enums/AppendState';
  5. import { ConsoleOutputDisableExpressionTemplate } from '../../templates/custom-nodes/console-output-nodes/console-output-disable-expression-node/ConsoleOutputDisableExpressionTemplate';
  6. import { AbstractCustomNode } from '../AbstractCustomNode';
  7. import { CustomNodeAppender } from '../CustomNodeAppender';
  8. import { NodeUtils } from '../../NodeUtils';
  9. export class ConsoleOutputDisableExpressionNode extends AbstractCustomNode {
  10. /**
  11. * @type {AppendState}
  12. */
  13. protected appendState: AppendState = AppendState.BeforeObfuscation;
  14. /**
  15. * @param blockScopeNode
  16. * @param stackTraceData
  17. */
  18. public appendNode (blockScopeNode: TNodeWithBlockStatement, stackTraceData: IStackTraceData[]): void {
  19. CustomNodeAppender.appendNode(
  20. stackTraceData,
  21. blockScopeNode.body,
  22. this.getNode(),
  23. CustomNodeAppender.getIndexByThreshold(blockScopeNode.body.length)
  24. );
  25. }
  26. /**
  27. * JSCrush version of following code
  28. *
  29. * (function () {
  30. * var _console = []["filter"]["constructor"]("return this")().console;
  31. * var _function = function () {};
  32. *
  33. * _console.log = _function;
  34. * _console.info = _function;
  35. * _console.warn = _function;
  36. * _console.error = _function;
  37. * _console
  38. * })();
  39. *
  40. * @returns {ESTree.Node}
  41. */
  42. protected getNodeStructure (): ESTree.Node {
  43. return NodeUtils.convertCodeToStructure(
  44. ConsoleOutputDisableExpressionTemplate()
  45. );
  46. }
  47. }