Expected Behavior
When generating Markdown documentation from a JSON Schema, unresolved $ref references (e.g., pointing to non-existent schema properties) should trigger a warning in the console output.
Actual Behavior
No warning is displayed when an unresolved $ref is encountered during Markdown generation. The process completes silently, potentially leading to incomplete or misleading documentation.
Steps to Reproduce
-
Use the following JSON Schema:
{
"meta:license": [
"Copyright 2017 Adobe Systems Incorporated. All rights reserved.",
"This file is licensed to you under the Apache License, Version 2.0 (the 'License');",
"you may not use this file except in compliance with the License. You may obtain a copy",
"of the License at http://www.apache.org/licenses/LICENSE-2.0"
],
"$schema": "http://json-schema.org/draft-06/schema#",
"$id": "https://example.com/schemas/complex",
"title": "Complex References",
"type": "object",
"description": "This is an example schema that uses types defined in other schemas.",
"properties": {
"refnamed": {
"version": "1.0.0",
"testProperty": "test"
},
"refrefed": {
"$ref": "#/properties/refnamed2",
"version": "1.0.0",
"testProperty": "test"
}
}
}
-
Run the following command:
jsonschema2md -d schemas/test -x -
-
Observe the console output:
loading 1 schemas
preparing schemas...
preparing schemas
preparing README...
building readme
README.md created
preparing documentation...
generating markdown
-
Note that no warning is shown for the broken reference:
"$ref": "#/properties/refnamed2"
Environment
- Operating System: Windows 11 (WSL2)
- Node.js Version: v22.17.0
- jsonschema2md Version: 8.0.3
Additional Notes
- The issue may lead to silent failures in documentation generation, especially in large schemas where broken references are harder to detect manually.
- A warning or error message would greatly improve developer experience and reliability.
Expected Behavior
When generating Markdown documentation from a JSON Schema, unresolved
$refreferences (e.g., pointing to non-existent schema properties) should trigger a warning in the console output.Actual Behavior
No warning is displayed when an unresolved
$refis encountered during Markdown generation. The process completes silently, potentially leading to incomplete or misleading documentation.Steps to Reproduce
Use the following JSON Schema:
{ "meta:license": [ "Copyright 2017 Adobe Systems Incorporated. All rights reserved.", "This file is licensed to you under the Apache License, Version 2.0 (the 'License');", "you may not use this file except in compliance with the License. You may obtain a copy", "of the License at http://www.apache.org/licenses/LICENSE-2.0" ], "$schema": "http://json-schema.org/draft-06/schema#", "$id": "https://example.com/schemas/complex", "title": "Complex References", "type": "object", "description": "This is an example schema that uses types defined in other schemas.", "properties": { "refnamed": { "version": "1.0.0", "testProperty": "test" }, "refrefed": { "$ref": "#/properties/refnamed2", "version": "1.0.0", "testProperty": "test" } } }Run the following command:
Observe the console output:
Note that no warning is shown for the broken reference:
Environment
Additional Notes