fix(idempotency): transform private class fields #2233
Merged
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 of your changes
This PR modifies the base
tsconfig.json
file used to transform our source code to ESM builds so that private class fields are downleveled correctly.As described at length in the linked issue, the combination of the setting
noEmitHelpers: true
with the target being set toES2021
(Node.js 16) caused an unexpected behavior that led to runtime errors for those customers who use ESM bundles with the Idempotency utility.The bug was introduced due to a potentially incorrect assumption that since the feature is stated to be supported for Node.js 14+, we wouldn't need to emit specific helpers to polyfill it. Based on this, I assumed that setting
noEmitHelpers
totrue
would be fine since our target version in the same config is Node.js 16.Besides the incorrect assumption, or a potential odd behavior (or even bug) in
tsc
, another real issue is that we didn't have integration tests running on the ESM build, which led us to not detect this until today.This PR doesn't add any test, but we'll prioritize the action and address it as soon as possible within this or next iteration.
Related issues, RFCs
Issue number: #2230
Checklist
Breaking change checklist
Is it a breaking change?: NO
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.
Disclaimer: We value your time and bandwidth. As such, any pull requests created on non-triaged issues might not be successful.