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 PR removes 2 refactorings:
Destructure Object
This one was not working well already (#416). It depended on a POC to resolve the types at runtime, which required the inclusion of the whole "typescript" library in the bundle.
Furthermore, I realized that TS 3.4 introduced a similar refactoring to VS Code: https://devblogs.microsoft.com/typescript/announcing-typescript-3-4/#convert-parameters-to-destructured-object
Extract useCallback()
This refactoring was specific to React. In short, it was applying the auto-fix of the
eslint-plugin-react-hooks
package.While this was useful, it's an edge-case that only applies to React codebases. It was not really causing performance issues (although any extra refactoring has a cost), but it required to include many packages in the bundle, including the "typescript" library (used by ESLint and the plugin that was also included).
Impact
The size of the extension bundle went down from ~9MB to ~1.5MB:
And for the browser bundle (the one that runs on VS Code Web), it went down from ~5.5MB to ~1.6MB: