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.
What issue does this pull request resolve?
#2554 (comment)
What changes did you make?
Implemented
noCache
instance option, allowing users to avoid using internal cache to minimise unnecessary memory usage in applications with lots of large schemas.The
addSchema
function allows users to cache schemas under a user-defined key or theschemaId
value. However, if users choose to use this more efficient key system, the whole schema is still entered into the internal_cache
, meaning:SchemaEnv
object is stored twice, inAjv.schemas
and inAjv._cache
Ajv._cache
keyFor large schemas this is less memory efficient than using
compile
alone. By adding thenoCache
option, this allows users to re-use validation functions throughaddSchema
andgetSchema
without having to store entire schemas inAjv._cache
keys.