generateWithConstraints function exported ✓ 90.0%

Last updated: 2026-02-24T21:07:57.586Z

Metrics

LOC: 26 Complexity: 5 Params: 1 Coverage: 90.0% (9/10 lines, 3x executed)

Signature

generateWithConstraints( generatorFn: () => string, constraints: ValueConstraints = {}, ): : string

Summary

Repeatedly invokes a generator function until the result satisfies the given constraints (e.g. maxLength, native element validity).

Tags

#@param generatorFn - Zero-arg function that produces a random value#@param constraints - Optional element/length constraints to satisfy#@returns A value that passes validation, or empty string if `requireValidity` is set and no valid value is found

Source Code

export function generateWithConstraints(
  generatorFn: () => string,
  constraints: ValueConstraints = {},
): string {
  const attempts = constraints.attempts ?? DEFAULT_ATTEMPTS;
  let lastGenerated = "";

  for (let i = 0; i < attempts; i += 1) {
    const raw = generatorFn();
    lastGenerated = raw;
    const adapted = adaptGeneratedValue(raw, {
      ...constraints,
      requireValidity: true,
    });
    if (adapted) return adapted;
  }

  if (constraints.requireValidity) {
    return "";
  }

  return adaptGeneratedValue(lastGenerated, {
    ...constraints,
    requireValidity: false,
  });
}

Dependencies (Outgoing)

graph LR generateWithConstraints["generateWithConstraints"] adaptGeneratedValue["adaptGeneratedValue"] generateWithConstraints -->|calls| adaptGeneratedValue style generateWithConstraints fill:#dbeafe,stroke:#2563eb,stroke-width:2px click generateWithConstraints "b5634e31dcca6c7f.html" click adaptGeneratedValue "08c3ad8d1ea27c4d.html"
TargetType
adaptGeneratedValue calls

Impact (Incoming)

graph LR generateWithConstraints["generateWithConstraints"] generateDateForField["generateDateForField"] generateDateForField -->|uses| generateWithConstraints style generateWithConstraints fill:#dbeafe,stroke:#2563eb,stroke-width:2px click generateWithConstraints "b5634e31dcca6c7f.html" click generateDateForField "a214011e5ced5989.html"
SourceType
generateDateForField uses