Add transformAttributes option to @svgr/core and hast-util-to-babel-ast #927
+136
−10
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
Allows disabling of JSX Attribute transformation (camelCasing of kebab-case attributes), which benefits Preact users (who are otherwise supported by SVGR explicitly, by
jsxRuntime: 'classic-preact'
).Would resolve #450
Test plan
Added a test/snapshot within
hast-util-to-babel-ast
to test that the output is as expected. Confirmed that other tests and snapshots were unaffected.Notes
This is purely additive, with a default value of
true
to keep existing behavior.I considered using discernible Preact implementation to set this to false by default, because without
preact/compat
, SVGR does not currently work with Preact. So something likejsx.transformAttributes ?? (config.jsxRuntime === 'classic-preact' || config.jsxRuntimeImport?.source.startsWith('preact'))
– but I think it's a bad idea to make a breaking change like that.I originally passed a separate config object all through the HAST package, but then I realized that
Helpers
was already sort of being used for that purpose? So I just spread the config into it. Let me know if that's an unreasonable approach.