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 does two things:
Constrain the parameter types for
cluster.fetchTopicOffsets
cluster.fetchTopicOffsets
now has two optional parameters,fromBeginning
andfromTimestamp
. In reality, these are mutually exclusive. There is no case in which you would want to pass in both. Simultaneously, there is also no case in which you would not want to pass in one of them. I.e. they are mutually exclusive but required.With the updated type definition, neither of those cases are possible anymore.
Add JSDoc annotations for internal factory methods for Consumer, Producer and Admin
Some of these previously had return annotations but not all of them, and none of them had parameter annotations so everything was
any
, pretty much.Unfortunately I couldn't find a way to get JSDoc to understand that
params.instrumentationEmitter
should be an instance ofInstrumentationEventEmitter
. Thetypedef
in there didn't make any sense, so I removed that. It should just be a matter of importing the module and then just using the classname, but it doesn't seem to work in VSCode at least.Also, there is absolutely no way to reference an enum in a
@param
, which I noticed when trying to typeisolationLevel
. Best I can do isnumber
, which is the underlying type. You can constrain the possible values by putting literals in there (@param {(0|1|2)} isolationLevel
), but that is ridiculous.