SaasKit.Decisions (saas_kit v3.0.0)

Copy Markdown

Resolves feature decisions exposed by the Live SaaS Kit API.

Interactive installs ask for missing choices. Automated installs can provide explicit values with --decision key=variant_slug.

Summary

Functions

Builds an install URL with optional resume step and decision query values.

Parses repeated --decision key=value arguments into a decision map.

Resolves the decisions for one feature.

Types

decisions()

@type decisions() :: %{optional(String.t()) => String.t()}

Functions

install_url(url, step, decisions)

@spec install_url(String.t(), String.t() | nil, decisions()) :: String.t()

Builds an install URL with optional resume step and decision query values.

parse_args!(args)

@spec parse_args!([String.t()]) :: decisions()

Parses repeated --decision key=value arguments into a decision map.

resolve(feature, supplied \\ %{}, chooser \\ &prompt_choice/1)

@spec resolve(map() | nil, decisions(), (map() -> String.t() | nil)) :: decisions()

Resolves the decisions for one feature.

chooser receives one unresolved decision and returns an option slug or nil.