fix: store create operation as object in this.#ops #50
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.
fixes #49 @csuwildcat
As explained there, the create operation was incorrectly stored as a Promise in the operation queue, leading to errors when trying to generate a request for a subsequent operation.
(The create operation was always stored as a Promise, but previously all the operations were awaited with Promise.all() in generateOperation, so that previous always was a pointer to the plain object. With the recent changes, this.#ops was accessed directly and no longer awaited, leading to the described problem. Storing the create operation as a promise is not necessarily incorrect - I just don't see a reason do it it like this while all other operations are stored as plain objects).
Consequently, it would not be necessary anymore for getAllOperations() to be async / use Promise.all(). Same for getOperation().
Is it planned to add tests to this library and/or to migrate to TypeScript? This would have caught the error.