Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
When we have a css rule that is defined as `.foo, .bar {}`, then we will crawl each selector and link it to the same node. This is usefull because now our Map looks something like this: ```js Map(2) { 'foo' => Node {}, 'bar' => Node {} } ``` This allows us to later on `@apply foo` or `@apply bar` and we can do a direct lookup for this "candidate". When we have css defined as `span {}`, then we consider this "non-ondemandable". This means that we will _always_ inject these rules into the `*` section and call it a day. However, it could happen that you have something like this: `span, .foo {}` up until now this was totally fine. It contains a non-ondemandable selector (`span`) and therefore we injected this into that `*` section. However, the issue occurs if you now try to `@apply foo`. Since we had an early return for this use case it didn't endup in our Map from above and now you get an error like: "The `foo` class does not exist. If `foo` is a custom class, make sure it is defined within a `@layer` directive." So instead what we will do is keep track whether or not a css rule contains any on-demandable clases. If this is the case then we still generate it always by putting it in that `*` section. However, we will still register all on-demandable classes in our Map (in this case `.foo`). This allows us to `@apply foo` again!
- Loading branch information