A simple utility for converting a JSON schema into Yup schema.
npm install -S json-yup
import createValidationSchema from 'json-yup';
createValidationSchema(schema, options);
Argument | Type | Description |
---|---|---|
schema | Object | A valid JSON schema conforming to JSON schema specifications. |
customValidationFields | Object | Custom Yup mappings for schema properties |
Property | Type | Description |
---|---|---|
blackList | Array | A list of fields to omit from the schema. |
customValidationFields | Object | Custom Yup mappings for schema properties |
validationTypes | Object | Custom Yup mappings for schema types. |
Yup validation object
// Valid JSON Schema
const jsonSchema = {
"type": "object",
"required": [
"first_name"
],
"properties": {
"create_at": {
"type": "string"
},
"first_name": {
"type": "string"
},
"age": {
"type": "number",
"min": 1,
"max": 200
}
}
};
// Build Yup Schema
const validationSchema = createValidationSchema(jsonSchema, {
blackList: [
'create_at'
],
validationTypes: {
string: yup.string().nullable()
},
customValidationFields: {
first_name: yup.string().test(
'isWilly',
'Oops! You\'re not Willy',
value => value === 'Willy'
)
}
});
// Check validity
validationSchema.isValid({
first_name: 'Willy',
age: 24
})