Test discriminator in AJV v7.1.1

by Leo

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/ajv/7.1.1/ajvJTD.min.js"></script>
<p>
Test discriminator in AJV v7.1.1
See  <a href="https://cdnjs.com/libraries/ajv">cdnjs:ajv </a>
</p>

CSS

html, document {
  background-color: black;
}

JavaScript

var schema = {
  type: "object",
  discriminator: {propertyName: "foo"},
  required: ["foo"],
  oneOf: [
    {
      properties: {
        foo: {const: "x"},
        a: {type: "string"},
      },
      required: ["a"],
    },
    {
      properties: {
        foo: {enum: ["y", "z"]},
        b: {type: "string"},
      },
      required: ["b"],
    },
  ],
};
var json = {foo: "y", b: "any"};
const Ajv = ajvJTD.default;
var ajv = new Ajv({
	v5: true,
	coerceTypes: true,
	useDefaults: true,
	removeAdditional: 'all',
  discriminator: true
});
var validate = ajv.compile(schema);
var result = validate(json);
console.log('Result: ', result);
console.log('Errors: ', validate.errors);
console.log('Final Json: ', json);