Scrypath.Phoenix (scrypath v0.3.7)

Copy Markdown View Source

Optional request-edge helpers for Phoenix controllers and LiveView.

This module stays pure and data-only. It delegates browser-param normalization to Scrypath.QueryParams, projects attempted values plus issues for rendering, and round-trips normalized state back into Plug-friendly query params.

It does not execute searches, call application contexts, or own socket lifecycle.

Summary

Functions

Delegates request-edge normalization to Scrypath.QueryParams.normalize/1.

Projects normalized query params into attempted values plus renderable issues.

Projects attempted request params plus structured request-edge issues.

Converts normalized query params back into canonical Plug-friendly params.

Types

form_data()

@type form_data() :: %{
  values: map(),
  params: map(),
  form_errors: [form_error()],
  field_errors: %{optional(String.t()) => [form_error()]},
  errors: [form_error()]
}

form_error()

@type form_error() :: %{
  optional(:field) => String.t(),
  code: atom(),
  message: String.t(),
  path: [String.t()],
  meta: map()
}

Functions

from_params(params)

@spec from_params(map()) ::
  {:ok, Scrypath.QueryParams.t()}
  | {:error, Scrypath.QueryParams.normalize_error_map()}

Delegates request-edge normalization to Scrypath.QueryParams.normalize/1.

to_form_data(query_params)

@spec to_form_data(Scrypath.QueryParams.t()) :: form_data()

Projects normalized query params into attempted values plus renderable issues.

to_form_data(params, map)

Projects attempted request params plus structured request-edge issues.

to_query_params(query_params)

@spec to_query_params(Scrypath.QueryParams.t()) :: map()

Converts normalized query params back into canonical Plug-friendly params.

This helper supports only the browser grammar accepted by Scrypath.QueryParams.normalize/1.