parseSavedFormPayload function exported ✓ 100.0%

Last updated: 2026-03-01T23:25:47.127Z

Metrics

LOC: 33 Complexity: 13 Params: 1 Coverage: 100.0% (9/9 lines, 11x executed)

Signature

parseSavedFormPayload(input: unknown): : SavedForm | null

Summary

Lightweight saved-form payload parser — typeof checks only.

Architecture violations

View all

  • [warning] max-cyclomatic-complexity: 'parseSavedFormPayload' has cyclomatic complexity 13 (max 10)

Tags

#@param input - Raw payload from a `SAVE_FORM` or `APPLY_TEMPLATE` message#@returns Reconstructed `SavedForm` or `null` if invalid

Source Code

export function parseSavedFormPayload(input: unknown): SavedForm | null {
  if (!input || typeof input !== "object") return null;
  const value = input as Partial<SavedForm>;
  if (
    typeof value.id !== "string" ||
    typeof value.name !== "string" ||
    typeof value.urlPattern !== "string" ||
    typeof value.createdAt !== "number" ||
    typeof value.updatedAt !== "number" ||
    !value.fields ||
    typeof value.fields !== "object"
  ) {
    return null;
  }

  const entries = Object.entries(value.fields as Record<string, unknown>);
  const allStringValues = entries.every(
    ([k, v]) => typeof k === "string" && typeof v === "string",
  );
  if (!allStringValues) return null;

  return {
    id: value.id,
    name: value.name,
    urlPattern: value.urlPattern,
    fields: value.fields as Record<string, string>,
    templateFields: Array.isArray(value.templateFields)
      ? value.templateFields
      : undefined,
    createdAt: value.createdAt,
    updatedAt: value.updatedAt,
  };
}

No outgoing dependencies.

No incoming dependencies.