I'm using Node 9.2.0 and ajv 6.0.0.
I have a schema that I wish to use negative lookbehind on, it's defined like:
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "release format",
"description": "A Release Format",
"type": "object",
"properties": {
"id": {"type": "integer"},
"title": {
"anyOf": [
{
"type": "string",
"pattern": "^((?!itunes).)*$"
},
{
"type": "string",
"pattern": "^((?!exclusive).)*$"
},
{
"type": "string",
"pattern": "^((?!ringtone).)*$"
}
]
}
}
}
However, it appears that when I try and validate this with AJV using the following data: {"id": 123, "title": "world exclusive"}
I don't get a validation error.
The code:
const Ajv = require('ajv');
class Validator {
constructor() {
this.releaseFormatSchema = JSON.parse(fs.readFileSync('./schemas/release-format.json'));
this.schemaValidator = new Ajv({allErrors: true});
}
validate(data) {
let validate = this.schemaValidator.compile(this.releaseFormatSchema);
let valid = validate(data);
console.log(valid);
console.log(validate);
}
}
where data would be: {"id": 123, "title": "world exclusive"}
. I would expect this to error, however it's currently telling me that the data is valid.