Comments (2)
There should be a simpler way to do it, but for now, try this:
var YoungDuck = schema({ age: 1 });
var OldDuck = schema({ age: 7 });
var Animals = schema({
ducks: schema({
0: YoungDuck,
1: OldDuck,
'*': null, // or length : 2
constructor: Function.reference(Array)
}),
})
The only modification I made to your example is that I added the '*': null,
and the constructor: Function.reference(Array)
attribute. If you don't need it to be a real array, just remove the constraint for the constructor.
Also consider using the deep equality pattern if applicable in your case ([[ { age: 1 }, { age: 7 } ]]
)
I think that the array handling of js-schema is still very immature, and it would be nice to solve its issues in a more general way. But for now, your Array.exact
is the best quick solution I can think of. I will close this ticket for now, but feel free to send a pull request with an Array.exact
implementation. Array handling will definitely be improved in the future.
from js-schema.
By the way, you don't need to nest schema
calls inside schema
calls, so the simplified solution would be this:
var YoungDuck = schema({ age: 1 });
var OldDuck = schema({ age: 7 });
var Animals = schema({
ducks: {
0: YoungDuck,
1: OldDuck,
'*': null, // or length : 2
constructor: Function.reference(Array)
}
})
from js-schema.
Related Issues (20)
- When calling #toJSON on a schema, "Function" is capitalized but other types are not HOT 3
- Specifying array pattern HOT 1
- property descriptions HOT 4
- reference another schema HOT 6
- unit test failure on "empty object should be valid sometimes" HOT 1
- heterogeneous array HOT 1
- #errors throws a false positive on optional fields HOT 1
- How to validate only given properties exist? HOT 1
- Add "Predicate" extension
- Errors with JSON Pointer HOT 1
- Testing Object w/ Properties HOT 2
- Strict mode HOT 5
- Optional validation does not work anymore
- typescript TypeError: js_schema_1.default is not a function HOT 1
- sometimes getting `constructor.schema.unwrap is not a function` errors HOT 1
- checker function will throw error if type of provided parameter mismatch
- Future of this project?
- schema is not defined at Object../node_modules/js-schema/lib/schema.js
- Is this an abandoned project? HOT 1
- thanks this res HOT 1
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 js-schema.