TaskValidator.ValidationPipeline (TaskValidator v0.9.1)

View Source

Simple validation pipeline for running validators in priority order.

Provides a clean, straightforward way to validate tasks using a configurable list of validators without the complexity of a full rule engine.

Usage

# Use default validators
result = ValidationPipeline.run(task, context)

# Use custom validator list
validators = [
  {TaskValidator.Validators.IdValidator, %{}},
  {TaskValidator.Validators.StatusValidator, %{}}
]
result = ValidationPipeline.run(task, context, validators)

# Validate multiple tasks
results = ValidationPipeline.run_many(tasks, context, validators)

Summary

Functions

Creates a custom validator set from a keyword list.

Returns the default set of validators in priority order.

Returns a minimal validator set for basic validation.

Runs validation pipeline on a single task.

Runs validation pipeline on multiple tasks.

Returns a strict validator set with enhanced checking.

Types

validation_context()

@type validation_context() :: map()

validator_spec()

@type validator_spec() :: {module(), map()}

Functions

build_validators(validator_configs)

@spec build_validators(keyword()) :: [validator_spec()]

Creates a custom validator set from a keyword list.

Example

validators = ValidationPipeline.build_validators([
  id: [strict_format: true],
  status: [],
  custom: [MyCustomValidator, [option: value]]
])

default_validators()

@spec default_validators() :: [validator_spec()]

Returns the default set of validators in priority order.

minimal_validators()

@spec minimal_validators() :: [validator_spec()]

Returns a minimal validator set for basic validation.

run(task, context, validators \\ nil)

Runs validation pipeline on a single task.

Parameters

  • task - The task to validate
  • context - Validation context (config, references, etc.)
  • validators - List of {validator_module, options} tuples (optional)

Returns

Combined ValidationResult from all validators

run_many(tasks, context, validators \\ nil)

Runs validation pipeline on multiple tasks.

Parameters

  • tasks - List of tasks to validate
  • context - Validation context
  • validators - List of validator specs (optional)

Returns

Combined ValidationResult from all task validations

strict_validators(options \\ %{})

@spec strict_validators(map()) :: [validator_spec()]

Returns a strict validator set with enhanced checking.