fixed bug on jss-plugin-nested #1591
Closed
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.
According a bug on here
The bug is here:
it split the string by comma, but imagine a selector like this:
&.hello, &.world:is(.awesome, .good, .bad)
it will splitted to:
it's incorrect, and should be:
and the another bug is with the parent selector
&
.Imagine if a selector like this:
&.hello, &.world[data-message="you & me"]
The
&
inside"you & me"
is not a parent selector, it's just a string expression.To solve the 2 problem above, i wrote a selector parser,
you can see (and maybe make more perfection) here: see my repo.
The parser is smart enough to distinguish between parent selector, universal selector, combinators, string expression, and so on.
The usage is simple:
parseSelector
=>flatMapSelectors
(replace&
with something) =>selectorsToString
.the package published with es9 format, but you can fork & re-transpile to es5.