JSON schema does not explicitly add "additionProperties: false"
- Dominant language
- TypeScript
- Stars
- 505
- Forks
- 8
- PR merge metrics
- No merged PRs in 30d
Description
This validator:
```
v
.object({
id: v.string().required(),
username: v.string(),
nested: v.object({
email: v.string(),
}),
})
```
Will produce this json-schema:
```
{
type: 'object',
properties: {
id: { type: 'string' },
username: { type: 'string' },
nested: { type: 'object', properties: [Object] }
},
required: [ 'id' ]
}
```
The problem here is that JSON-schema validators like ajv infer if there is no `additionalProperties: false` then additional properties are _allowed_. This conflicts with the implementation of the `ObjectValidator` because if you want to allow additional properties you are required to chain `.additional({ ... })` which should imply to the developer that when `.additional({...})` is not used then to expect `_additionalProperties: false_` in the json-schema output.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.