More accurate validation messages on constraints #148
Merged
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.
Previously the validation messages were simply tied to the operator.
There were cases where the message lost its meaning. For example,
a constraing of ^1.12.7 with a version to check of 1.6.6 would have
said the major version did not match. This is not true.
The errors were reworked to be part of the functions performing the
check. This would allow some errors returned to be different from
others. For example, in the case listed here it could not the one
is less than the other. The varying cases is important for ^ as
it has special rules for cases when the major is 0 or the major
and minor are 0. Validation messages appropriate for each of those
cases can be returned.
Note, in v4 of this library there can be one function for checking
and validation as the internals enable that now. The Check function
on constraints can return errors with it and the Validation method
can be removed. That wasn't put into place now as it would be API
breaking under semver rules.
Closes #145