Move most of APIClient interface to its promise chain #6022
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.
Explain the changes
This change will decrease the size of an APiClient object to an object with a single field named
options
.The interface objects (which contain the method declaration) will be generated on the fly on each access and will consist of a single field named
client
that point back to the client that created them.The methods themselves are not implemented on the prototype of each API object.
A side effect of this change is that we cannot pass an API method directly as a callback because it loses its context. A workaround is to pass an arrow function that preserves the context as I did for node.n2n_signal
This PR is an alternative to the solution presented in PR #6017