fastify / fastify/fluent-json-schema

ObjectSchema.extend Does not return a schema instance

Open
#249 3 comments 1 reaction 0 assignees View on GitHub
bug good first issue
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.