bindRulesEvents function domain
Last updated: 2026-03-04T23:21:38.433Z
Location
Metrics
LOC: 72
Complexity: 13
Params: 0
Signature
bindRulesEvents(): : void
Architecture violations
- [warning] max-cyclomatic-complexity: 'bindRulesEvents' has cyclomatic complexity 13 (max 10)
Source Code
function bindRulesEvents(): void {
document
.getElementById("btn-save-rule")
?.addEventListener("click", async () => {
const urlPattern = (
document.getElementById("rule-url") as HTMLInputElement
).value.trim();
const fieldSelector = (
document.getElementById("rule-selector") as HTMLInputElement
).value.trim();
if (!urlPattern || !fieldSelector) {
showToast(t("errorFillUrlAndSelector"), "error");
return;
}
const fieldTypeValue = ruleTypeSelect?.getValue().trim() ?? "";
if (!fieldTypeValue) {
showToast(t("errorSelectFieldType"), "error");
return;
}
const isUpdating = !!currentEditingRuleId;
const rule: FieldRule = {
id: currentEditingRuleId || generateId(),
urlPattern,
fieldSelector,
fieldName:
(
document.getElementById("rule-field-name") as HTMLInputElement
).value.trim() || undefined,
fieldType: fieldTypeValue as FieldType,
generator: (ruleGeneratorSelect?.getValue() ??
"auto") as FieldRule["generator"],
generatorParams: collectRuleParams(),
fixedValue:
(
document.getElementById("rule-fixed") as HTMLInputElement
).value.trim() || undefined,
priority:
parseInt(
(document.getElementById("rule-priority") as HTMLInputElement)
.value,
10,
) || 10,
createdAt: isUpdating
? (
(await chrome.runtime.sendMessage({
type: "GET_RULES",
})) as FieldRule[]
).find((r) => r.id === currentEditingRuleId)?.createdAt ||
Date.now()
: Date.now(),
updatedAt: Date.now(),
};
await chrome.runtime.sendMessage({ type: "SAVE_RULE", payload: rule });
await loadRules();
cancelEditRule();
showToast(isUpdating ? t("toastRuleUpdated") : t("toastRuleSaved"));
});
document.getElementById("btn-cancel-rule")?.addEventListener("click", () => {
cancelEditRule();
showToast(t("toastEditCancelled"));
});
ruleGeneratorSelect?.on("change", () => {
updateRuleParamsSection();
});
}
Dependencies (Outgoing)
| Target | Type |
|---|---|
| generateId | calls |
| collectRuleParams | calls |
| loadRules | calls |
| cancelEditRule | calls |
| updateRuleParamsSection | calls |
| click | dynamic_call |
| change | dynamic_call |
Impact (Incoming)
| Source | Type |
|---|---|
| initRulesTab | calls |