The validator mixin provides access to the features of the JSON validation system
Members
-
_defaultSchemaName :string|function
-
The default name of the scheman when you use anonymous schemas. You can define this at the prototype for classified schemas. The can also
Type:
- string | function
-
schema :object
-
The schema that defines the validation rules. This should probably be defined at the prototype for each object or model classification. It can be an anonymous schema defined right here, or this can be registered schema names to use, or just a single name
Type:
- object
-
schemas :object
-
If you want to register multiple schemas, use this property instead
Type:
- object
-
validationOptions :object|function
-
The options to pass to the validator when it runs
Type:
- object | function
Methods
-
addCheck(name, formatter) → {boolean}
-
It is possible to add support for custom checks (i.e., minItems, maxItems, minLength, maxLength, etc.) through the addCheck function
Parameters:
Name Type Description namestring The name of the check formatterfunction Perform the check Properties
Name Type Description valueobject The value to check followed by any parameters from the schema Returns:
- Type
- boolean
-
addFormat(name, formatter) → {boolean}
-
It is also possible to add support for additional string formats through the addFormat function.
Parameters:
Name Type Description namestring The name of the formatter formatterfunction How to format it Properties
Name Type Description valueobject The value to format Returns:
- Type
- boolean
-
addType(name, operation) → {boolean}
-
Create a type to be used in your schemas to define new validators
Parameters:
Name Type Description namestring The name of the type operationfunction What to do with the type. Properties
Name Type Description valueobject The value to validation Returns:
- Type
- boolean
-
addTypeCoercion(name, coercer) → {boolean}
-
Custom coercion rules
Parameters:
Name Type Description namestring The name of the coercion coercerfunction Perform the coercion Properties
Name Type Description valueobject The value to coerce Returns:
- Type
- boolean
-
defaultDoc(schema) → {object}
-
Builds a default document based on the schema. What this does is create a document from schema and for each property that has a default value or is required, the resultant object will contain that property. It is useful for extending values from some source that may be incomplete, like options or some such.
Parameters:
Name Type Description schemajson-schema A schema to use to create the default document Returns:
- Type
- object
-
extract(record, schema)
-
Extracts only the elements of the object that are defined in the schema
Parameters:
Name Type Argument Description recordobject <optional>
The record to extract from schemastring <optional>
The name of the schema to attach -
extract(schema, src) → {object}
-
This method will create a new object that contains only the fields and no methods or other artifacts. This is useful for creating objects to pass over the wire or save in a table. This is not deeply copied, so changes made to the extracted object will be represented in this class for reference objects.
Parameters:
Name Type Argument Description schemastring <optional>
The schema name to use srcobject <optional>
The object to extract fields from Returns:
Data-only version of the class instance.- Type
- object
-
getSchema(schemaName) → {object}
-
Get a registered schema by name
Parameters:
Name Type Argument Description schemaNamestring <optional>
Returns:
- Type
- object
-
registerSchemas(schemas)
-
Initialize the schema collection by registering the with the handler. You can call this at any time and as often as you like. It will be called once by the constructor on any instance schemas
Parameters:
Name Type Description schemashash A hash of schemas where the key is the name of the schema -
validate(record, schemaName, options) → {object}
-
Validate an object against the schema
Parameters:
Name Type Argument Description recordobject <optional>
The record to validate schemaNamestring | object The name of a previously registered schema optionsobject <optional>
Options to pass to the validator Returns:
- Type
- object
Example
// This supports these signatures: instance.validate(record, schemaName, options); instance.validate(); // this, this._defaultSchemaName, this.validationOptions instance.validate(record); // record, this._defaultSchemaName, this.validationOptions instance.validate(schemaName); //this, schemaName, this.validationOptions instance.validate(record, schemaName); //record, schemaName, this.validationOptions instance.validate(schemaName, options); //this, schemaName, this.validationOptions