src/lib/form/extractors/strategies/prev-label.ts

Total Symbols
1
Lines of Code
18
Avg Complexity
3.0
Avg Coverage
100.0%

Symbols by Kind

method 1

All Symbols

Name Kind Visibility Status Lines Signature
find method - 11-16 find(element: HTMLElement): : LabelResult | null

Full Source

/**
 * Label Strategy — prev-label
 *
 * Checks if the immediately preceding sibling is a <label>.
 */

import type { LabelResult, LabelStrategy } from "../label-strategy.interface";

export const prevLabelStrategy: LabelStrategy = {
  name: "prev-label",
  find(element: HTMLElement): LabelResult | null {
    const prev = element.previousElementSibling;
    if (prev?.tagName !== "LABEL") return null;
    const text = prev.textContent?.trim();
    return text ? { text, strategy: "prev-label" } : null;
  },
};