enjoi-browser
Converts a JSON schema to a Joi schema for object validation.
Schema Support
enjoi
is built against json-schema v4, but does not support all of json-schema.
Here is a list of some missing keyword support still being worked on:
object:patternProperties
- Joi limitation.
API
enjoi(schema [, options])
schema
- a JSON schema or a string type representation (such as'integer'
).options
- an (optional) object of additional options such assubSchemas
and customtypes
.subSchemas
- an (optional) object with keys representing schema ids, and values representing schemas.types
- an (optional) object with keys representing type names and values representing a Joi schema.refineType(type, format)
- an (optional) function to call to apply to type based on the type and format of the JSON schema.strictMode
- make schemasstrict(value)
with a default value offalse
.
Example:
const Joi = ;const Enjoi = ; const schema = ; Joi;
Can also call validate
directly on the created schema.
schema;
Sub Schemas
Sub-schemas can be provided through the subSchemas
option for $ref
values to lookup against.
Example:
const schema = ;
Custom Types
Custom types can be provided through the types
option.
const schema = ;
Refine Type
You can use the refine type function to help refine types based on type
and format
. This will allow transforming a type for lookup against the custom types
.
const schema = ;