classifyField function application

Last updated: 2026-03-03T18:32:34.140Z

Metrics

LOC: 31 Complexity: 6 Params: 2

Signature

classifyField( input: FieldClassifierInput, ): : Promise<FieldClassifierOutput | null>

Source Code

async function classifyField(
  input: FieldClassifierInput,
): Promise<FieldClassifierOutput | null> {
  const session = await getOrCreateClassifierSession();
  if (!session) return null;

  const prompt = fieldClassifierPrompt.buildPrompt(input);

  const controller = new AbortController();
  const timeoutId = setTimeout(() => controller.abort(), CLASSIFY_TIMEOUT_MS);

  let raw: string;
  try {
    raw = await session.prompt(prompt, {
      signal: controller.signal,
    });
  } catch (err) {
    if (err instanceof Error && err.name === "AbortError") {
      log.warn(`Timeout (${CLASSIFY_TIMEOUT_MS}ms) na classificação.`);
    } else {
      classifierSession?.destroy();
      classifierSession = null;
      log.warn("Erro na classificação:", (err as Error).message);
    }
    return null;
  } finally {
    clearTimeout(timeoutId);
  }

  return fieldClassifierPrompt.parseResponse(raw);
}

Dependencies (Outgoing)

graph LR classifyField["classifyField"] getOrCreateClassifierSession["getOrCreateClassifierSession"] classifyField -->|calls| getOrCreateClassifierSession style classifyField fill:#dbeafe,stroke:#2563eb,stroke-width:2px click classifyField "9847427f97e12b6f.html" click getOrCreateClassifierSession "ea7741b25c685b3f.html"
TargetType
getOrCreateClassifierSession calls

No incoming dependencies.