Skip to content

Maximum call stack size exceeded when referencing external json with recursion #376

Closed
@jose-bernard-receeve

Description

@jose-bernard-receeve

Person.json

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "definitions": {
    "person": {
      "type": "object",
      "properties": {
        "name": { "type": "string" },
        "children": {
          "type": "array",
          "items": { "$ref": "#/definitions/person" },
          "default": []
        }
      }
    }
  },
  "type": "object",
  "properties": {
    "person": { "$ref": "#/definitions/person" }
  }
}

House.json

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "owner": { "$ref": "Person.json" }
  }
}

output

Could not generate type definitions from json-schema RangeError: Maximum call stack size exceeded
    at Object.log (/Users/jose/dev/Decision-Tree/node_modules/json-schema-to-typescript/dist/src/utils.js:1:1)
    at generateRawType (/Users/jose/dev/Decision-Tree/node_modules/json-schema-to-typescript/dist/src/generator.js:153:13)
    at generateType (/Users/jose/dev/Decision-Tree/node_modules/json-schema-to-typescript/dist/src/generator.js:146:16)
    at /Users/jose/dev/Decision-Tree/node_modules/json-schema-to-typescript/dist/src/generator.js:273:47
    at Array.map (<anonymous>)
    at generateInterface (/Users/jose/dev/Decision-Tree/node_modules/json-schema-to-typescript/dist/src/generator.js:271:14)
    at generateRawType (/Users/jose/dev/Decision-Tree/node_modules/json-schema-to-typescript/dist/src/generator.js:168:20)
    at generateType (/Users/jose/dev/Decision-Tree/node_modules/json-schema-to-typescript/dist/src/generator.js:146:16)
    at /Users/jose/dev/Decision-Tree/node_modules/json-schema-to-typescript/dist/src/generator.js:162:28
    at generateRawType (/Users/jose/dev/Decision-Tree/node_modules/json-schema-to-typescript/dist/src/generator.js:164:15)

When I don't reference Person.json it works fine generating the recursive reference

Also tried this other Person schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false,
  "type": "object",
    "properties": {
      "name": { "type": "string" },
      "children": {
        "type": "array",
        "items": { "$ref": "#" }
      }
  }
}

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions