AbstractCustomNodesFactory.ts 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import { TObfuscationEvent } from '../types/TObfuscationEvent';
  2. import { ICustomNode } from '../interfaces/custom-nodes/ICustomNode';
  3. import { ICustomNodesFactory } from '../interfaces/ICustomNodesFactory';
  4. import { IOptions } from '../interfaces/IOptions';
  5. import { IStackTraceData } from '../interfaces/stack-trace-analyzer/IStackTraceData';
  6. import { ObfuscationEvents } from '../enums/ObfuscationEvents';
  7. export abstract class AbstractCustomNodesFactory implements ICustomNodesFactory {
  8. /**
  9. * @type {TObfuscationEvent}
  10. */
  11. protected readonly appendEvent: TObfuscationEvent = ObfuscationEvents.BeforeObfuscation;
  12. /**
  13. * @type {IStackTraceData[]}
  14. */
  15. protected readonly stackTraceData: IStackTraceData[];
  16. /**
  17. * @type {IOptions}
  18. */
  19. protected readonly options: IOptions;
  20. /**
  21. * @param options
  22. */
  23. constructor (options: IOptions) {
  24. this.options = options;
  25. }
  26. /**
  27. * @param stackTraceData
  28. * @returns {Map<string, ICustomNode> | undefined}
  29. */
  30. public abstract initializeCustomNodes (stackTraceData: IStackTraceData[]): Map <string, ICustomNode> | undefined;
  31. /**
  32. * @param customNodes
  33. * @returns {Map<string, ICustomNode>}
  34. */
  35. protected syncCustomNodesWithNodesFactory (customNodes: Map <string, ICustomNode>): Map <string, ICustomNode> {
  36. customNodes.forEach((customNode: ICustomNode) => {
  37. customNode.setAppendEvent(this.appendEvent);
  38. });
  39. return customNodes;
  40. }
  41. }