Comments (4)
Yes, I think the schema is not valid. And I don't know why jsonschema
and ajv
would behave like that. I would speculate that their code does not stop execution on the first occurrence of a validation keyword, but goes on and so executes several validations on the same data because there are several validation keywords in the schema. But even that would not explain this behavior, since from the anyOf
spec (sec. 6.7.2):
Each item of the array MUST be a valid JSON Schema
And in your example that is not true.
* This is my understanding of the spec and I may be wrong.
** If I understand correctly your case, you should be able to just use minProperties.
from enjoi.
Thanks, looking into this.
from enjoi.
anyOf
and type
are two different validation keywords. I don't think you can use two validation keywords alongside in the same schema. At least I don't see that allowed in the spec.
The other option is for anyOf
to be a validation keyword for the object
type, but that is also not the case sec. 6.5.
I don't think what you described is the expected behavior.
from enjoi.
@maldimirov Thanks for looking into this. If I understand you right, you're saying that my schema is not valid per spec?
If so, both jsonschema and ajv behave not according to spec, as I've mentioned above. But it would explain why enjoi can't deal with it.
from enjoi.
Related Issues (20)
- doesn't handle schemas that use more than one of `type`, `anyOf`, `allOf` HOT 1
- allow additionalProperties by default
- handle cases where `type` keyword is undefined or `type` is an array HOT 1
- Infinite loop when schema contains a self-reference
- [Bug] Using a $ref in a anyOf or allOf triggers a RangeError
- useDefaults should assume `null` & empty string are empty
- Convert "description" to description()
- Proposal for refactor HOT 19
- Allowing empty strings by default for string types HOT 6
- joi and hoek deprecated, moved to @hapi/joi @hapi/hoek HOT 1
- Joi dependency in wrong section HOT 2
- Update needed to support new version of Hapi and Joi HOT 7
- Source code of version 6.0.0 HOT 3
- Version 6.0.2 is not publish to npm HOT 1
- Joi.extend no longer accepts array arguments
- [Feature] Yup support HOT 2
- Other way around: Joi to JSON
- Basic example is not working
- Resolving of `not` is incorrect
- Version 7.0.0 from npm still uses `@hapi/joi` instead `joi` library HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from enjoi.