TypeScript 5.2, use tshy for hybrid builds #886
Merged
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.
This is a massive patch, but only a few things have really changed.
TypeScript upgraded to version 5.2, which has new and more restrictive behaviors around module loading and ESM/CommonJS dialect emitting.
To work around this, and provide a simpler and more consistent build experience, tshy is now used to build all modules, the built Test code, and used in the @tapjs/create-plugin initializer for use in future plugins.
The dist directories are thus renamed from
mjs
andcjs
to the more comprehensibleesm
andcommonjs
. This is a no-op for most users, but it did mean a lot of edits to import paths in tests.A shortcoming that was surfaced by the build change showed that it was possible to add a plugin that can only be loaded by
require()
, and not byimport()
. This is now detected, and the plugin addition is prevented in that case.