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.
Even with new changes it is buggy to use graphql-jit with esm. The problems are - file imports without extensions (e.g. "./execution"), internal package imports ("graphql/utils/Path"), and also directory imports ("graphql/language").
The other set of problems happen with esbuild (part of tsup) not being able to strip away type names from the build. For this it is required to mark the type imports with the type keyword in the import statements.
So, the PR fixes -
.js
extension for imports that are not modules (relative imports and internal file / directory imports from packages)type
modifier to all type only imports. This was done with the help of typescript 5's new featureverbatimModuleSyntax
. We are not preserving this TSConfig option because it requires the package to be oftype: module
which is not the case for us..js
extension so that Jest is able to import the ts file directly.As a follow up PR, we can validate in CI using tsc or other tool that we don't export types without the
type
modifier.