You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When running matic for a JSON file with recursive references ($ref), then a RangeError is caused.
C:\node_modules\matic\lib\merge.js:52
itterate(val, key, obj, schema);
^
RangeError: Maximum call stack size exceeded
at C:\node_modules\matic\lib\merge.js:52:9
at Function._.each._.forEach (C:\node_modules\matic\node_modules\underscore\underscore.js:87:22)
at C:\node_modules\matic\lib\merge.js:14:7
at C:\node_modules\matic\lib\merge.js:52:9
at Function._.each._.forEach (C:\node_modules\matic\node_modules\underscore\underscore.js:87:22)
at C:\node_modules\matic\lib\merge.js:14:7
at merge (C:\node_modules\matic\lib\merge.js:64:12)
at C:\node_modules\matic\lib\merge.js:33:36
at Function._.each._.forEach (C:\node_modules\matic\node_modules\underscore\underscore.js:87:22)
at C:\node_modules\matic\lib\merge.js:14:7
As example I cloned matic-draft4-example([https://github.com/mattyod/matic-draft4-example). And I changed the example.json file to the following:
{
"title": "Matic Draft 4 Example",
"Description": "An example schema to demonstrate Matic",
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"items": {
"allOf": [
{
"$ref": "#definitions/foo"
},
{
"$ref": "#definitions/bar"
}
],
"anyOf": [
{
"$ref": "#definitions/foo"
}
],
"oneOf": [
{
"$ref": "#definitions/bar"
}
]
},
"definitions": {
"foo": {
"title": "Foo",
"description": "A foo schema",
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"url": {
"title": "A url",
"description": "An example url schema",
"type": "string",
"format": "uri",
"example": "http://github.com/mattyod/matic"
},
"list": {
"title": "A list",
"description": "A list of things",
"type": "array",
"example": [
"one",
"two",
"three"
]
},
"recursion" : {
"$ref": "#definitions/foo"
}
},
"required": [
"url"
]
},
"bar": {
"title": "Bar",
"description": "A bar schema",
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"thing": {
"title": "thing",
"description": "a thing that uses a local pointer to an other thing for it's properties",
"type": "object",
"properties": {
"$ref": "example"
}
},
"thing2": {
"$ref": "#/properties/otherThing"
},
"otherThing": {
"id": "example",
"type": "integer"
}
},
"required": [
"thing",
"thing2",
"otherThing"
]
}
}
}
Note that I've inlined the bar and foo objects. And to foo I have added the following property:
"recursion" : {
"$ref": "#definitions/foo"
}
So it contains a recursive reference which is allowed by the JSON Schema spec.
The text was updated successfully, but these errors were encountered:
When running matic for a JSON file with recursive references ($ref), then a RangeError is caused.
As example I cloned matic-draft4-example([https://github.com/mattyod/matic-draft4-example). And I changed the example.json file to the following:
Note that I've inlined the bar and foo objects. And to foo I have added the following property:
So it contains a recursive reference which is allowed by the JSON Schema spec.
The text was updated successfully, but these errors were encountered: