This repository has been archived by the owner on Apr 11, 2023. It is now read-only.
Don't initialize empty strings with null in validation #277
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.
This PR fixes issue #276
A brief summary: During validation of required properties, jaydata does not recognize the empty string
""
as a value and will call.getDefault()
to create an initial value for that property. This will overwrite the empty string withnull
, which is not correct - especially for properties whose schema have anullable: false
annotation.A special JS "feature" conceals this behaviour:
!entity.data[memDef.name]
will evaluate totrue
for the empty string - because!""
evaluates to true. However, I think the original author of that line only intended to check forundefined
andnull
. So I added one more check to see if the property is the empty string, and only if this is not the case the property is overriden with the default value.