collectRuleParams function

Last updated: 2026-03-04T23:21:38.433Z

Metrics

LOC: 39 Complexity: 10 Params: 0

Signature

collectRuleParams(): : GeneratorParams | undefined

Source Code

function collectRuleParams(): GeneratorParams | undefined {
  const fieldsDiv = document.getElementById("rule-params-fields");
  if (!fieldsDiv) return undefined;

  const inputs = fieldsDiv.querySelectorAll<HTMLInputElement>(
    "input[data-param-key]",
  );
  const selects = fieldsDiv.querySelectorAll<HTMLSelectElement>(
    "select[data-param-key]",
  );
  if (inputs.length === 0 && selects.length === 0) return undefined;

  const params: Record<string, unknown> = {};
  let hasAny = false;

  inputs.forEach((input) => {
    const key = input.dataset.paramKey!;
    if (input.type === "checkbox") {
      params[key] = input.checked;
      hasAny = true;
    } else if (input.type === "number") {
      const val = parseFloat(input.value);
      if (!isNaN(val)) {
        params[key] = val;
        hasAny = true;
      }
    }
  });

  selects.forEach((select) => {
    const key = select.dataset.paramKey!;
    if (select.value) {
      params[key] = select.value;
      hasAny = true;
    }
  });

  return hasAny ? (params as GeneratorParams) : undefined;
}

No outgoing dependencies.

Impact (Incoming)

graph LR collectRuleParams["collectRuleParams"] bindRulesEvents["bindRulesEvents"] bindRulesEvents -->|calls| collectRuleParams style collectRuleParams fill:#dbeafe,stroke:#2563eb,stroke-width:2px click collectRuleParams "546661d5d9be8ecf.html" click bindRulesEvents "3107cd11f10b1501.html"
SourceType
bindRulesEvents calls