Generates Elixir modules for typed SQL queries.
Produces per-query row @type definitions, @spec-annotated functions, and runtime
encode/decode helpers. Each query gets a raising function and an additive soft
companion (<name>_ok/arity) that returns {:ok, result} | {:error, Exception.t()}.
Soft command companions return {:ok, num_rows}. See Writing Queries and
Types for conventions and type mapping.
Summary
Functions
@spec check_directories(Path.t(), [Squirrelix.TypedQueryDirectory.t()], keyword()) :: [ {Path.t(), :ok | {:error, :invalid_sql_directory | struct()}, non_neg_integer()} ]
@spec check_directory(Path.t(), Path.t(), [Squirrelix.TypedQuery.t()], keyword()) :: :ok | {:error, :invalid_sql_directory | struct()}
@spec generate_module(module(), [Squirrelix.TypedQuery.t()], keyword()) :: String.t()
@spec summarize_check_outcomes([ {Path.t(), :ok | {:error, term()}, non_neg_integer()} ]) :: Squirrelix.CodegenCheckSummary.t()
@spec summarize_write_outcomes([ {Path.t(), :ok | {:error, term()}, non_neg_integer()} ]) :: Squirrelix.CodegenSummary.t()
@spec write_directories(Path.t(), [Squirrelix.TypedQueryDirectory.t()], keyword()) :: [ {Path.t(), :ok | {:error, :invalid_sql_directory | struct()}, non_neg_integer()} ]
@spec write_directory(Path.t(), Path.t(), [Squirrelix.TypedQuery.t()], keyword()) :: :ok | {:error, :invalid_sql_directory | struct()}