DomainLockNodesGroup.ts 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import { AbstractNodesGroup } from './AbstractNodesGroup';
  2. import { NodeAppender } from '../NodeAppender';
  3. import { DomainLockNode } from '../custom-nodes/domain-lock-nodes/DomainLockNode';
  4. import { NodeCallsControllerFunctionNode } from '../custom-nodes/node-calls-controller-nodes/NodeCallsControllerFunctionNode';
  5. import { ICustomNode } from '../interfaces/custom-nodes/ICustomNode';
  6. export class DomainLockNodesGroup extends AbstractNodesGroup {
  7. /**
  8. * @returns {Map<string, ICustomNode> | undefined}
  9. */
  10. public getNodes (): Map <string, ICustomNode> | undefined {
  11. if (!this.options.domainLock.length) {
  12. return;
  13. }
  14. const callsControllerFunctionName: string = 'domainLockCallsControllerFunction';
  15. const randomStackTraceIndex: number = NodeAppender.getRandomStackTraceIndex(this.stackTraceData.length);
  16. return this.syncCustomNodesWithNodesGroup(new Map <string, ICustomNode> ([
  17. [
  18. 'DomainLockNode',
  19. new DomainLockNode(
  20. this.stackTraceData,
  21. callsControllerFunctionName,
  22. randomStackTraceIndex,
  23. this.options
  24. )
  25. ],
  26. [
  27. 'DomainLockNodeCallsControllerFunctionNode',
  28. new NodeCallsControllerFunctionNode(
  29. this.stackTraceData,
  30. callsControllerFunctionName,
  31. randomStackTraceIndex,
  32. this.options
  33. )
  34. ]
  35. ]));
  36. }
  37. }