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 refactors
transformChunk
so it is uses SWC's parser to collect all strings in the chunk's code that contain the base string that is supposed to be replaced with e.g.window.__dynamic_base__
(or whatever the user configures).Some Notes and clarifications
parse
returns an AST where all elements havespan
s. These, however, do not refer to character indices in the original code, but to byte positions. That is why we need to encode the chunk's code-string into a Uint8Array. To handle this conveniently, theStringAsBytes
class is introduced.esnext
to be as inclusive as possible. We could think about ways to translate the vitetarget
to the parser target. This is not straightforward, because although the parser acceptsesXXX
strings as target, allows for more complex ways to define the target.