DoneJS StealJS jQuery++ FuncUnit DocumentJS
3.14.1
5.0.0 4.3.0 2.3.35
  • About
  • Guides
  • API Docs
  • Community
  • Contributing
  • Bitovi
    • Bitovi.com
    • Blog
    • Design
    • Development
    • Training
    • Open Source
    • About
    • Contact Us
  • About
  • Guides
  • API Docs
    • Observables
      • can-compute
      • can-define
      • can-define/list/list
      • can-define/map/map
      • can-define-stream
      • can-define-stream-kefir
      • can-event
      • can-event/async/async
      • can-event/batch/batch
      • can-event/lifecycle/lifecycle
      • can-kefir
      • can-list
      • can-map
      • can-map-backup
      • can-map-define
      • can-observation
      • can-observe
      • can-simple-map
      • can-simple-observable
      • can-stream
      • can-stream-kefir
    • Data Modeling
      • can-connect
      • can-connect-cloneable
      • can-connect-feathers
      • can-connect-ndjson
      • can-connect-signalr
      • can-fixture
      • can-fixture-socket
      • can-ndjson-stream
      • can-set
    • Views
      • can-component
      • can-ejs
      • can-element
      • can-react-component
      • can-stache
      • can-stache/helpers/route
      • can-stache-bindings
      • can-stache-converters
      • can-view-autorender
      • can-view-callbacks
      • can-view-href
      • can-view-import
      • can-view-live
      • can-view-model
      • can-view-nodelist
      • can-view-parser
      • can-view-scope
      • can-view-target
      • react-view-model
      • react-view-model/component
      • steal-stache
    • Routing
      • can-deparam
      • can-param
      • can-route
      • can-route-pushstate
    • JS Utilities
      • can-assign
      • can-define-lazy-value
      • can-globals
      • can-key-tree
      • can-make-map
      • can-parse-uri
      • can-string
      • can-string-to-any
      • can-util
      • can-zone
      • can-zone-storage
    • DOM Utilities
      • can-ajax
      • can-attribute-encoder
      • can-control
      • can-dom-events
      • can-event-dom-enter
      • can-event-dom-radiochange
      • can-jquery
    • Data Validation
      • can-define-validate-validatejs
      • can-validate
        • Methods
          • formatErrors
        • Types
          • Error
          • Errors
          • validator
      • can-validate-interface
      • can-validate-legacy
      • can-validate-validatejs
    • Typed Data
      • can-cid
      • can-construct
      • can-construct-super
      • can-namespace
      • can-reflect
      • can-reflect-promise
      • can-types
    • Polyfills
      • can-symbol
      • can-vdom
    • Core
    • Infrastructure
      • can-global
      • can-test-helpers
    • Ecosystem
    • Legacy
  • Community
  • Contributing
  • GitHub
  • Twitter
  • Chat
  • Forum
  • News
Bitovi

formatErrors

  • Edit on GitHub

formatErrors(errors, format)

Processes errors (only items that match the Errors type) and converts items to a structure defined by format.

formatErrors( [ "is required", { message: "is invalid" } ], "errors" );

Parameters

  1. errors {Errors}:

    A value that matches the Errors type.

  2. format {string}:

    Should be equal to object, flat, or errors.

Returns

{Array|Object}:

The errors either flattened into a single array, grouped in by key in an object, or a single array of Error items. If no format is passed, errors will be returned in the raw parsed format.

Usage

The errors value should match the possible Errors type.

Given the following...

// validate this object
const person = {};

// against these constraints
const constraints = {
    age: {
        required: true,
        number: true
    }
};

// will return some errors
const errors = someValidator( person, constraints );//> ["is required", "must be a number"]

We can expect the following responses

Object Example

If no key exists in the error response, an array like object will be created.

{
    "0": ["is required", "must be a number"]
}

Flat Example

[
    "is required",
    "must be a number"
]

Errors Example

If a key name exists in the error response, then we can expect to see the key name in related.

[
    { "message": "is required", "related": []},
    { "message": "must be a number", "related": []}
]

Handling errors without related

Given the following errors object

[
    "is required",
    {"message": "must be a number"},
    {"message": "must be a number", "related": ["zipCode"]}
]

Because only one item in the array has a related property, the other two items will be grouped together by assigning them the wildcard (*) key. Once processed, the errors will look like

[
    {"message": "is required", "related": ["*"]},
    {"message": "must be a number", "related": ["*"]},
    {"message": "must be a number", "related": ["zipCode"]}
]

CanJS is part of DoneJS. Created and maintained by the core DoneJS team and Bitovi. Currently 3.14.1.

On this page

Get help

  • Chat with us
  • File an issue
  • Ask questions
  • Read latest news