1.0.2 • Published 4 years ago

json-yup v1.0.2

Weekly downloads
44
License
MIT
Repository
github
Last release
4 years ago

json-yup

npm npm

A simple utility for converting a JSON schema into Yup schema.

Setup

npm install -S json-yup
import createValidationSchema from 'json-yup';

API

createValidationSchema(schema, options);

Arguments

ArgumentTypeDescription
schemaObjectA valid JSON schema conforming to JSON schema specifications.
customValidationFieldsObjectCustom Yup mappings for schema properties

Options

PropertyTypeDescription
blackListArrayA list of fields to omit from the schema.
customValidationFieldsObjectCustom Yup mappings for schema properties
validationTypesObjectCustom Yup mappings for schema types.

Returns

Yup validation object

Usage

// 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
})