DprintMarkdownFormatter.Validator (dprint_markdown_formatter v0.3.0)

View Source

Input validation utilities for DprintMarkdownFormatter.

Provides comprehensive validation for all inputs including content, options, and configuration values.

Summary

Functions

Validates a configuration struct.

Validates content input for formatting.

Validates formatting options.

Functions

validate_config(config)

@spec validate_config(term()) :: validation_result(DprintMarkdownFormatter.Config.t())

Validates a configuration struct.

Examples

iex> config = %DprintMarkdownFormatter.Config{}
iex> DprintMarkdownFormatter.Validator.validate_config(config)
{:ok, config}

validate_content(content)

@spec validate_content(term()) :: validation_result(String.t())

Validates content input for formatting.

Examples

iex> DprintMarkdownFormatter.Validator.validate_content("# Hello")
{:ok, "# Hello"}

iex> DprintMarkdownFormatter.Validator.validate_content("")
{:ok, ""}

iex> DprintMarkdownFormatter.Validator.validate_content(nil)
{:error, %DprintMarkdownFormatter.Error.ValidationError{}}

validate_options(opts)

@spec validate_options(term()) :: validation_result(keyword())

Validates formatting options.

Ensures that options are provided as a keyword list and all values are valid. Unknown options are allowed for forward compatibility.

Examples

iex> DprintMarkdownFormatter.Validator.validate_options([line_width: 80])
{:ok, [line_width: 80]}

iex> DprintMarkdownFormatter.Validator.validate_options([line_width: 80, text_wrap: :never])
{:ok, [line_width: 80, text_wrap: :never]}

iex> DprintMarkdownFormatter.Validator.validate_options(%{line_width: 80})
{:error, %DprintMarkdownFormatter.Error.ValidationError{}}

iex> DprintMarkdownFormatter.Validator.validate_options([line_width: -1])
{:error, %DprintMarkdownFormatter.Error.ValidationError{}}