Reexport glint-compatible versions of upstream values #58
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.
Up to this point, we've managed to get by with declaration merging into upstream packages (
@glimmerx/component
,ember-modifier
, etc) to make the types exported there compatible with glint's system for template typing. This was already somewhat perilous in that it required us to tack on additional type parameters to certain classes, assume TS would resolve our overload of a particular function rather than the more general upstream one, and so on.With the changes in #54, we were no longer able to continue kicking that can down the road, and had to temporarily break
fn
andon
from GlimmerX. Between this and the inconsistency between theComponent<Args, Yields, ...>
form factor we were forced into compared to theComponent<{ Args, Yields, ... }>
one we wanted, it's become clear that for the time being we can't continue to just augment existing types.This PR updates the
@glint/environment-*
packages to re-export the necessary upstream values with types that are glint-compatible.Hopefully this isn't a long-term solution and we'll be able to eventually land changes to the upstream types that make them, if not glint-aware, at least glint compatible.
Closes #25