Skip to content

Rewrite of the original yup-ast due to licensing problems (with consent of the original author).

License

Notifications You must be signed in to change notification settings

demvsystems/yup-ast

Repository files navigation

yup-ast

Latest Stable Version Node.js Package NPM Downloads dependencies Status Test Coverage

Generates yup instances from JSON schemas.

This project is meant to be a successor to the original yup-ast which - due to licensing issues - can no longer be actively maintained. Due to time contraints, only the core functionality has been ported so far. Feel free to add any potential improvements or missing APIs from the original via PRs!

Installation

npm install --save @demvsystems/yup-ast

Usage

ES5

var transformAll = require('@demvsystems/yup-ast').transformAll;

ES2015+

import { transformAll } from '@demvsystems/yup-ast';

Transforming JSON to a schema instance

The JSON representation of a yup schema is an array with each call being an array again. The method calls start with "yup.". Each parameter is an additional array entry afterwards.

Example: To create a schema like the following:

const schema = yup.array()
  .required()
  .min(2)
  .of(
    yup.object()
      .required()
      .shape({
        foo: yup.string().required(),
      })
  );

you call transformAll like this:

const schema = transformAll([
  ['yup.array'],
  ['yup.required'],
  ['yup.min', 2],
  ['yup.of', [
    ['yup.object'],
    ['yup.required'],
    ['yup.shape', {
      foo: [['yup.string'], ['yup.required']],
    }],
  ]],
]);

Both can be validated the same way:

schema.isValidSync([
  { foo: 'bar' },
  { foo: 'baz' },
]); // => true

For more example use cases, have a look at the included test cases.

Changelog

Please look at the releases for more information on what has changed recently.

Credits

License

The ISC License (ISC). Please see License File for more information.

About

Rewrite of the original yup-ast due to licensing problems (with consent of the original author).

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •