Liking cljdoc? Tell your friends :D

boundary.core.validation.result

Standard validation result format and utilities.

This namespace defines the canonical result format for all validation operations in the Boundary framework, supporting both schema validation and business rule validation with structured errors and warnings.

Result Format: {:valid? boolean ; Overall validation status :data map ; Validated/transformed data (if valid) :errors vector-of-error-maps ; Validation errors (if invalid) :warnings vector-of-warning-maps} ; Non-blocking warnings (optional)

Error/Warning Map Format: {:field keyword ; Field identifier :code keyword ; Error/warning code :message string ; Human-readable message :params map ; Template parameters :path vector ; Path to error location :rule-id keyword} ; Optional: validation rule ID

Design Principles:

  • Forward compatibility: new keys can be added without breaking existing code
  • Feature-flag gated: new functionality controlled by BND_DEVEX_VALIDATION
  • I18n-ready: :code + :params enable future message translation
  • FC/IS compliant: pure data structures, no side effects
Standard validation result format and utilities.

This namespace defines the canonical result format for all validation
operations in the Boundary framework, supporting both schema validation
and business rule validation with structured errors and warnings.

Result Format:
  {:valid?   boolean                    ; Overall validation status
   :data     map                        ; Validated/transformed data (if valid)
   :errors   vector-of-error-maps       ; Validation errors (if invalid)
   :warnings vector-of-warning-maps}    ; Non-blocking warnings (optional)

Error/Warning Map Format:
  {:field   keyword                     ; Field identifier
   :code    keyword                     ; Error/warning code
   :message string                      ; Human-readable message
   :params  map                         ; Template parameters
   :path    vector                      ; Path to error location
   :rule-id keyword}                    ; Optional: validation rule ID

Design Principles:
- Forward compatibility: new keys can be added without breaking existing code
- Feature-flag gated: new functionality controlled by BND_DEVEX_VALIDATION
- I18n-ready: :code + :params enable future message translation
- FC/IS compliant: pure data structures, no side effects
raw docstring

add-errorclj

(add-error result error)

Add an error to existing result.

Args: result: Existing validation result error: Error map to add

Returns: Updated result with error added and :valid? set to false

Add an error to existing result.

Args:
  result: Existing validation result
  error: Error map to add

Returns:
  Updated result with error added and :valid? set to false
sourceraw docstring

add-warningclj

(add-warning result warning)

Add a warning to existing result.

Args: result: Existing validation result warning: Warning map to add

Returns: Updated result with warning added

Add a warning to existing result.

Args:
  result: Existing validation result
  warning: Warning map to add

Returns:
  Updated result with warning added
sourceraw docstring

devex-validation-enabled?clj

(devex-validation-enabled?)

Check if DevEx validation features are enabled.

Delegates to the feature-flags system for consistent flag resolution. Default: false (backward compatible).

Returns: Boolean indicating if DevEx validation is enabled

Check if DevEx validation features are enabled.

Delegates to the feature-flags system for consistent flag resolution.
Default: false (backward compatible).

Returns:
  Boolean indicating if DevEx validation is enabled
sourceraw docstring

error-countclj

(error-count result)

Count total errors in result.

Args: result: Validation result map

Returns: Integer error count

Count total errors in result.

Args:
  result: Validation result map

Returns:
  Integer error count
sourceraw docstring

error-mapclj

(error-map field code message)
(error-map field code message {:keys [params path rule-id] :as _opts})

Create a structured error map.

Args: field: Keyword identifying the field code: Keyword error code message: Human-readable error message opts: (optional) Map with :params, :path, :rule-id

Returns: Structured error map

Example: (error-map :email :invalid-format "Invalid email format" {:params {:value "bad@email"} :path [:user :email]})

Create a structured error map.

Args:
  field: Keyword identifying the field
  code: Keyword error code
  message: Human-readable error message
  opts: (optional) Map with :params, :path, :rule-id

Returns:
  Structured error map

Example:
  (error-map :email :invalid-format "Invalid email format" 
             {:params {:value "bad@email"} :path [:user :email]})
sourceraw docstring

errors-by-codeclj

(errors-by-code result)

Group errors by code.

Args: result: Validation result map

Returns: Map of {code [error-maps]}

Group errors by code.

Args:
  result: Validation result map

Returns:
  Map of {code [error-maps]}
sourceraw docstring

errors-by-fieldclj

(errors-by-field result)

Group errors by field.

Args: result: Validation result map

Returns: Map of {field [error-maps]}

Example: {:email [{:field :email :code :invalid-format ...}] :age [{:field :age :code :out-of-range ...}]}

Group errors by field.

Args:
  result: Validation result map

Returns:
  Map of {field [error-maps]}

Example:
  {:email [{:field :email :code :invalid-format ...}]
   :age   [{:field :age :code :out-of-range ...}]}
sourceraw docstring

failure-resultclj

(failure-result errors)
(failure-result errors warnings)

Create a failed validation result.

Args: errors: Vector of error maps or single error map warnings: (optional) Vector of warning maps

Returns: Standard failure result map

Example: (failure-result {:field :email, :code :invalid-format, :message "Invalid email"}) => {:valid? false, :data nil, :errors [{...}], :warnings []}

Create a failed validation result.

Args:
  errors: Vector of error maps or single error map
  warnings: (optional) Vector of warning maps

Returns:
  Standard failure result map

Example:
  (failure-result {:field :email, :code :invalid-format, :message "Invalid email"})
  => {:valid? false, :data nil, :errors [{...}], :warnings []}
sourceraw docstring

first-errorclj

(first-error result)

Get first error from result.

Args: result: Validation result map

Returns: First error map or nil

Get first error from result.

Args:
  result: Validation result map

Returns:
  First error map or nil
sourceraw docstring

get-errorsclj

(get-errors result)

Extract errors from validation result.

Args: result: Validation result map

Returns: Vector of error maps (empty if validation passed)

Extract errors from validation result.

Args:
  result: Validation result map

Returns:
  Vector of error maps (empty if validation passed)
sourceraw docstring

get-validated-dataclj

(get-validated-data result)

Extract validated data from result.

Args: result: Validation result map

Returns: Validated data or nil if validation failed

Extract validated data from result.

Args:
  result: Validation result map

Returns:
  Validated data or nil if validation failed
sourceraw docstring

get-warningsclj

(get-warnings result)

Extract warnings from validation result.

Args: result: Validation result map

Returns: Vector of warning maps

Extract warnings from validation result.

Args:
  result: Validation result map

Returns:
  Vector of warning maps
sourceraw docstring

has-warnings?clj

(has-warnings? result)

Check if result has warnings.

Args: result: Validation result map

Returns: Boolean indicating presence of warnings

Check if result has warnings.

Args:
  result: Validation result map

Returns:
  Boolean indicating presence of warnings
sourceraw docstring

legacy-result?clj

(legacy-result? result)

Check if result uses legacy format (no :warnings key).

Args: result: Validation result map

Returns: Boolean indicating legacy format

Check if result uses legacy format (no :warnings key).

Args:
  result: Validation result map

Returns:
  Boolean indicating legacy format
sourceraw docstring

merge-resultsclj

(merge-results results)

Merge multiple validation results.

Combined result is valid only if all inputs are valid. Errors and warnings are concatenated.

Args: results: Vector of validation result maps

Returns: Merged validation result

Example: (merge-results [result1 result2 result3])

Merge multiple validation results.

Combined result is valid only if all inputs are valid.
Errors and warnings are concatenated.

Args:
  results: Vector of validation result maps

Returns:
  Merged validation result

Example:
  (merge-results [result1 result2 result3])
sourceraw docstring

normalize-resultclj

(normalize-result result)

Normalize legacy result to standard format.

Ensures result has all expected keys (:valid?, :data, :errors, :warnings).

Args: result: Validation result map (legacy or standard)

Returns: Normalized result map

Normalize legacy result to standard format.

Ensures result has all expected keys (:valid?, :data, :errors, :warnings).

Args:
  result: Validation result map (legacy or standard)

Returns:
  Normalized result map
sourceraw docstring

success-resultclj

(success-result data)
(success-result data warnings)

Create a successful validation result.

Args: data: Validated/transformed data warnings: (optional) Vector of warning maps

Returns: Standard success result map

Example: (success-result {:email "user@example.com" :name "John"}) => {:valid? true, :data {...}, :errors [], :warnings []}

Create a successful validation result.

Args:
  data: Validated/transformed data
  warnings: (optional) Vector of warning maps

Returns:
  Standard success result map

Example:
  (success-result {:email "user@example.com" :name "John"})
  => {:valid? true, :data {...}, :errors [], :warnings []}
sourceraw docstring

validation-failed?clj

(validation-failed? result)

Check if validation result indicates failure.

Args: result: Validation result map

Returns: Boolean indicating if validation failed

Check if validation result indicates failure.

Args:
  result: Validation result map

Returns:
  Boolean indicating if validation failed
sourceraw docstring

validation-passed?clj

(validation-passed? result)

Check if validation result indicates success.

Args: result: Validation result map

Returns: Boolean indicating if validation passed

Check if validation result indicates success.

Args:
  result: Validation result map

Returns:
  Boolean indicating if validation passed
sourceraw docstring

warning-mapclj

(warning-map field code message)
(warning-map field code message opts)

Create a structured warning map (same structure as error-map).

Args: field: Keyword identifying the field code: Keyword warning code message: Human-readable warning message opts: (optional) Map with :params, :path, :rule-id

Returns: Structured warning map

Create a structured warning map (same structure as error-map).

Args:
  field: Keyword identifying the field
  code: Keyword warning code
  message: Human-readable warning message
  opts: (optional) Map with :params, :path, :rule-id

Returns:
  Structured warning map
sourceraw docstring

cljdoc builds & hosts documentation for Clojure/Script libraries

Keyboard shortcuts
Ctrl+kJump to recent docs
Move to previous article
Move to next article
Ctrl+/Jump to the search field
× close