src/lib/form/extractors/signals-extractor.ts
Symbols by Kind
function
1
All Symbols
| Name | Kind | Visibility | Status | Lines | Signature |
|---|---|---|---|---|---|
| buildSignals | function | exported- | 18-28 | buildSignals(field: Partial<FormField>): : string |
Full Source
/**
* Signals Extractor
*
* Builds a normalised string of context signals for a form field,
* combining label, name, id, placeholder and autocomplete into a
* single lowercase string used by TF.js / Chrome AI for classification.
*/
import type { FormField } from "@/types";
import type { Extractor } from "./extractor.interface";
/**
* Concatenates a field's label, name, id, placeholder and autocomplete
* attributes into a single lowercase string for ML classification.
* @param field - Partial form field with optional metadata
* @returns Normalised signals string
*/
export function buildSignals(field: Partial<FormField>): string {
return [
field.label?.toLowerCase(),
field.name?.toLowerCase(),
field.id?.toLowerCase(),
field.placeholder?.toLowerCase(),
field.autocomplete?.toLowerCase(),
]
.filter(Boolean)
.join(" ");
}
/** Extractor object — wraps {@link buildSignals} under the common Extractor contract. */
export const signalsExtractor: Extractor<Partial<FormField>, string> = {
name: "signals",
extract: buildSignals,
};