Use conditional typing for defining the right set of options #166
+40
−15
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.
Description
This PR fixes the typing of a wrapped function's second argument, namely:
options
. Such options are described by two types:CallableContextOptions
andEventContextOptions
. The first is only due to thehttp.onCall()
, since the functionhttp.onRequest()
is not supposed to be wrapped. The latter is due to all other cloud functions under V1.With the current implementation, the type of the options is the result of a union of both types mentioned above. Because of that, a consumer of this API was led to believe that some options due to a "event" function were available to "callable" function, and vice-versa.
This PR fixes that by conditionally assigning the type of such options depending on the function being wrapped.
Code sample
There is no API change. But here is an example of what this PR introduces: