fastify / fastify/fluent-json-schema
ObjectSchema.extend Does not return a schema instance
- Dominant language
- JavaScript
- Stars
- 526
- Forks
- 58
- PR merge metrics
- No merged PRs in 30d
Description
### Prerequisites
- [X] I have written a descriptive issue title
- [X] I have searched existing issues to ensure the bug has not already been reported
### Fastify version
4.x.x
### Plugin version
4.2.1
### Node.js version
18.0
### Operating system
Linux
### Operating system version (i.e. 20.04, 11.3, 10)
Manjaro 5.10.218 x86
### Description
Once you call `extend` on a schema, the function chain is broken because the extend function returns a plain object rather than an instance of the schema being extended. This breaks the normal usage of the builder pattern implemented by this library.
### Link to code that reproduces the bug
https://github.com/fastify/fluent-json-schema/blob/6db9f0ba5bbf49aa266bc44dfb82a8f0c04b7c71/src/ObjectSchema.js#L350
### Expected Behavior
One should be able to continue chaining function calls such as `without` or `only`, etc after calling extend.
It should be safe to use the schema factory function found on the schema to build out a new instance of the same type.
Contributor guide
Assessment
This issue has not been assessed yet.