Project discovery and PostgreSQL connection helpers.
This module mirrors upstream Squirrel CLI behaviour using Elixir data structures:
maps for discovered files, structs for connection options, and {:ok, _} /
{:error, reason} tuples for fallible operations.
Summary
Functions
Recursively finds sql/ directories and their .sql files under path.
Types
Functions
@spec connection_options_from_variables(map(), String.t() | nil) :: Squirrelix.ConnectionOptions.t()
@spec discover_sql_directories(Path.t()) :: discovered_sql_files()
Recursively finds sql/ directories and their .sql files under path.
Returns a map of directory paths to sorted SQL file paths.
@spec parse_connection_url(String.t()) :: {:ok, Squirrelix.ConnectionOptions.t()} | {:error, :invalid_url}
@spec query_directories(Path.t()) :: [Squirrelix.QueryDirectory.t()]
@spec query_files(Path.t()) :: discovered_sql_files()