Fix AJV warning, "$ref: keywords ignored in schema" #392
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The improved handling for recursive schemas that was added in #383 resulted in type-related keywords being added alongside the
$ref
keywords. Such keywords are ignored according to draft-07 of the JSON Schema, so AJV (and possibly other tools) warn about them.For more information, see ajv-validator/ajv#1121
To address this, I revised the recursive ref logic to only include "annotation" keywords, based on the list here:
http://json-schema.org/understanding-json-schema/reference/generic.html#annotations
(That page also includes
title
, but typescript-json-schema currently doesn't recognize that.)Note that draft 2019-09 of JSON Schema changes
$ref
to act like a normal keyword, so this change will no longer be necessary in that version of the spec.Fixes #391.
Please:
Readme.md