-
Notifications
You must be signed in to change notification settings - Fork 28
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Provide workarounds for both TS (bad peer-provided types handling) and Glint (mishandling of extensions) issues #292
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Applied these changes to my addon (created using blueprint v2.16.0) and they fixed my issues with relative imports of .gts
files in my declarations.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Applied these changes to my addon (created using blueprint v2.16.0) and they fixed my issues with relative imports of .gts
files in my declarations.
}, | ||
}, | ||
<% } %> | ||
], |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I feel like this plugin shouldn't be exploded inline into addon's rollup configs 🤔 should it be a new dependency that just provides this? or is it just something that the Embroider addon-dev is providing as a plugin (like the other ones in this file)?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
addon-dev could provide it, if it weren't using tsc
to compile (because the way embroider is configured to use tsc
right now doesn't actually support await import()
in CJS (it gets converted to a require....)).
I would just call it addon.declarations(/* default output "declarations" folder */ )
or something like that.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I could also just publish a new package that provides these few lines, which is very easy (your first suggestion).
maybe.. declarations()
is how it's invoked
(doing this would allow me to author a CJS version of the plugin that does proper await import, for addon-dev to use, if that's what we wanted)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd also like to see the Rollup config remain simple and dependencies to a minimum. If I understood the release notes right, the reference directives won't appear with typescript@5.5
?
- Do not perserve references in declaration emit, unless preserve=true microsoft/TypeScript#57681
- https://devblogs.microsoft.com/typescript/announcing-typescript-5-5-rc/#simplified-reference-directive-declaration-emit
If so, the blueprint could remain as is (or only be updated to handle importing .gts
files), and those who are on typescript@<=5.4
could install fix-bad-declaration-output
. Maybe you could first try out the release candidate for 5.5
in v2 addons.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Naw glint is still borked out of the box
This isn't ideal, and I would have PR'd it sooner, but I was kind of hoping that we'd have solutions to these problems by now... but we don't.
To unblock people and to make the blueprint usable for folks wishing to use typescript, we need this work around.
Here are the issues that this PR resolves:
TOC
type typed-ember/glint#697