var Ajv = require('ajv');
var ajv = Ajv();
var ajvFilter = Ajv({removeAdditional: true});
var schema = {
type: 'object',
additionalProperties: {
anyOf: [{
type: 'object',
properties: {
a: {
type: 'string'
}
},
required: ['a'],
additionalProperties: false
}, {
type: 'object',
properties: {
b: {
type: 'string'
}
},
required: ['b'],
additionalProperties: false
}]
}
};
const data = {
obj1: {
a: 'a'
},
obj2: {
b: 'b'
},
obj3: {
c: 'c'
}
};
ajv.validate(schema, data);
console.log(ajv.errors);
ajvFilter.validate(schema, data);
console.log(ajvFilter.errors);
console.log(data);