Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
This MR aims to offer a more performant target for node env and make some global performance improvements.
The current
defuddle/nodeuses JSDOM which is quite slow vs Linkedom. The former being already used for Cloudflare Worker target.Changes
defuddle/linkedomexport target, inspired of thedefuddle/nodeand what is done inwebsite/src/convert.tsto patch missing APIs in Linkedom.Benchmark
Here are the results I've observed by running
defuddle/nodevsdefuddle/linkedomon a Macbook pro M3 with node v24.12.0Running 58 fixtures × 5 runs each…
..........................................................
Testing
tests/linkedom.test.tsis added to ensure it is running over existing fixtures (even though it is not checking that the content is the expected one) and that it is preserving the same API asdefuddle/nodetarget