Prerequisites
Fastify version
4.28.0 (latest)
Plugin version
5.16.1 (latest)
Node.js version
20.11.0 (LTS)
Operating system
macOS Sonoma 14.5
Description
When defining a schema with at least two anyOf fields or oneOf fields with self ref like so :
import fastJson from 'fast-json-stringify';
const schema = {
$schema: 'http://json-schema.org/draft-07/schema#',
type: 'object',
properties: {
field: { type: 'string' },
field1: { anyOf: [{ $ref: '#' }, { type: 'null' }] },
field2: { anyOf: [{ $ref: '#' }, { type: 'null' }] },
},
};
fastJson(schema.valueOf());
I'm getting this following error :
RangeError: Maximum call stack size exceeded
at RefResolver.#addSchema (../../node_modules/.pnpm/json-schema-ref-resolver@1.0.1/node_modules/json-schema-ref-resolver/index.js:143:14)
at RefResolver.#addSchema (../../node_modules/.pnpm/json-schema-ref-resolver@1.0.1/node_modules/json-schema-ref-resolver/index.js:165:24)
at RefResolver.#addSchema (../../node_modules/.pnpm/json-schema-ref-resolver@1.0.1/node_modules/json-schema-ref-resolver/index.js:165:24)
at RefResolver.#addSchema (../../node_modules/.pnpm/json-schema-ref-resolver@1.0.1/node_modules/json-schema-ref-resolver/index.js:165:24)
at RefResolver.#addSchema (../../node_modules/.pnpm/json-schema-ref-resolver@1.0.1/node_modules/json-schema-ref-resolver/index.js:165:24)
at RefResolver.addSchema (../../node_modules/.pnpm/json-schema-ref-resolver@1.0.1/node_modules/json-schema-ref-resolver/index.js:30:20)
at mergeLocations (../../node_modules/.pnpm/fast-json-stringify@5.16.1/node_modules/fast-json-stringify/index.js:433:23)
at buildOneOf (../../node_modules/.pnpm/fast-json-stringify@5.16.1/node_modules/fast-json-stringify/index.js:868:24)
at buildValue (../../node_modules/.pnpm/fast-json-stringify@5.16.1/node_modules/fast-json-stringify/index.js:979:12)
at buildInnerObject (../../node_modules/.pnpm/fast-json-stringify@5.16.1/node_modules/fast-json-stringify/index.js:380:11)
at buildObject (../../node_modules/.pnpm/fast-json-stringify@5.16.1/node_modules/fast-json-stringify/index.js:501:9)
at buildSingleTypeSerializer (../../node_modules/.pnpm/fast-json-stringify@5.16.1/node_modules/fast-json-stringify/index.js:768:24)
at buildValue (../../node_modules/.pnpm/fast-json-stringify@5.16.1/node_modules/fast-json-stringify/index.js:1010:13)
at buildOneOf (../../node_modules/.pnpm/fast-json-stringify@5.16.1/node_modules/fast-json-stringify/index.js:874:26)
at buildValue (../../node_modules/.pnpm/fast-json-stringify@5.16.1/node_modules/fast-json-stringify/index.js:979:12)
at buildInnerObject (../../node_modules/.pnpm/fast-json-stringify@5.16.1/node_modules/fast-json-stringify
(output truncated for readability)
Fastify fails to start when using this schema in routes
Is this kind of schema possible ? in my case, anyOf / oneOf + self reference & null are required.
Prerequisites
Fastify version
4.28.0 (latest)
Plugin version
5.16.1 (latest)
Node.js version
20.11.0 (LTS)
Operating system
macOS Sonoma 14.5
Description
When defining a schema with at least two anyOf fields or oneOf fields with self ref like so :
I'm getting this following error :
(output truncated for readability)
Fastify fails to start when using this schema in routes
Is this kind of schema possible ? in my case, anyOf / oneOf + self reference & null are required.