Source code


The schema package provides functions for validating a JavaScript object against a schema. A schema is a JavaScript object describing a shape (form, schema, pattern). It is composed of aspects, which have a name and a value. These aspects are the members of the schema. The name of the aspect is mapped on an aspect value, which can be a primitive value, a function, a regular expression or a schema.

The function validate is used to perform validation of an object against a schema. It returns an object (called validation report), which contains an error message for every aspect of the schema, that the object does not conform to. Thus the report builds up the *same structure* as the the schema. If the object conforms to the schema, validate returns an empty object. For convenience the function isValid takes a validation report and returns true for an empty result and false, if the report contains errors.

If the aspect value is a function this can be used within the function to navigate to properties within the object. With this._parent you can navigate up the object tree. Thus it is not recommended to perform validation on objects that do contain a _parent property. When specifying a schema, you should not use the _parent property either.

If the aspect value is a function the following rules apply. The function must return true, if the value of the object fulfills the aspect, otherwise the function should return a String containing an error message or false, which will produce a generic error message. Exceptions that occur within the function are considered an error message also.



Validate an object against a schema.

The schema is a JavaScript object, which is seen as map of properties to either values, functions, regular expressions or schemas. The values of the properties in a schema are called aspects. The object is said to confirm to schema, if all properties of schema exist in object and all values of object match the corresponding aspect.

object : the object to validate
schema : the schema to validate the object against
return : a report of the validation results, if the report is empty the object confirms to the schema, otherwise it contains the validation errors

Return true, if a validation result is empty (containing no validation errors). False, otherwise.

validationResult : a return value of CERNY.schema.validate
return : True, if no validation errors are in result and false, otherwise.

Defines the term optional for use in schemas. Works only for functions at the moment.

f : the aspect that is optional
return : a function that evaluates f on it's argument only if the argument is not undefined or null

Defines the term arrayOf for use in schemas. Works on functions and schemas.

type : the schema or function the array should consist of.

Defines the term ISO date for use in Schemas.

str : the string value to check if it is an ISO date
return : true, if it str is an ISO date string, an error message otherwise


2006-07-25 : Created.

API Documentation for version