CLIENT_TRACKING.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.transformArguments = void 0;
  4. function transformArguments(mode, options) {
  5. const args = [
  6. 'CLIENT',
  7. 'TRACKING',
  8. mode ? 'ON' : 'OFF'
  9. ];
  10. if (mode) {
  11. if (options?.REDIRECT) {
  12. args.push('REDIRECT', options.REDIRECT.toString());
  13. }
  14. if (isBroadcast(options)) {
  15. args.push('BCAST');
  16. if (options?.PREFIX) {
  17. if (Array.isArray(options.PREFIX)) {
  18. for (const prefix of options.PREFIX) {
  19. args.push('PREFIX', prefix);
  20. }
  21. }
  22. else {
  23. args.push('PREFIX', options.PREFIX);
  24. }
  25. }
  26. }
  27. else if (isOptIn(options)) {
  28. args.push('OPTIN');
  29. }
  30. else if (isOptOut(options)) {
  31. args.push('OPTOUT');
  32. }
  33. if (options?.NOLOOP) {
  34. args.push('NOLOOP');
  35. }
  36. }
  37. return args;
  38. }
  39. exports.transformArguments = transformArguments;
  40. function isBroadcast(options) {
  41. return options?.BCAST === true;
  42. }
  43. function isOptIn(options) {
  44. return options?.OPTIN === true;
  45. }
  46. function isOptOut(options) {
  47. return options?.OPTOUT === true;
  48. }