fix(http): negotiation returns the specific type of supported outcomes (when provided) #6876
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 very simple PR adds a type parameter to all three negotiation functions (
accepts,acceptsEncoding,acceptsLanguage) when they are called with more than one argument, so that the returned string will have the same specific type as the provided values.This typing better reflects the actual behaviour (providing those arguments ensures that the returned value will be one of them, if any was acceptable) and improves type checking down the line when the content-types, encodings, or language code are used as keys (which is quite often, in my experience).
For example: