grantila / grantila/suretype

JSON schema does not explicitly add "additionProperties: false"

Open
#41 2 comments 0 reactions 0 assignees View on GitHub
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.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.