to delete

by Leo

HTML

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

CSS

html, document {
  background-color: black;
}

JavaScript

var schema = {
  "definitions": {
    "Bar": {
      "properties": {
        "id": {
          "type": "string"
        }
      }
    }
  },
  "properties": {
    "sheets": {
      "elements": {
        "discriminator": "type",
        "mapping": {
          "PaperSheet": {
            "properties": {
              "charts": {
                "elements": {
                  "discriminator": "type",
                  "mapping": {
                    "bar": {
                      "properties": {
                        "id": {
                          "type": "string"
                        }
                      }
                    },
                    "line": {
                      "properties": {
                        "id": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}
;



var json = {
   
};
const Ajv = ajvJTD.default;
var ajv = new Ajv({
  removeAdditional: true,
	//v5: true,
	//coerceTypes: true,
	//useDefaults: true,
	//removeAdditional: 'all',
  discriminator: true,
  allowUnionTypes: true,
  verbose: true
});

//var validate = ajv.compile(schema);
//var result = validate(json);
//console.log('Result: ', result);
//console.log('Errors: ', validate.errors);

const result = ajv.validate(schema, json);
console.log('Result: ', result);
console.log('Errors: ', ajv.errors);