fix: add .js
extension for relative import/exports in declarations
#134
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.
Context: nuxt/nuxt#18426
Currently with Node16-style module resolution, the following will not be recognised by TS within a declaration file (imagine we have
index.d.ts
andother.d.ts
):In order for this to be understood, it needs to have the JS file extension equivalent of the other dts file, which would be .js. (
.mjs
would be the equivalent for a.d.mts
file).Despite the fact that no
.js
file exists, TS understands the following to mean what we want:This PR adds support for a new flag (
addRelativeDeclarationExtensions
) which enables the addition of this extension within the outputted files. I've tested this within the Nuxt codebase both with and without Node16 style module resolution but it would benefit from broader testing as well, which is why I'm opening the PR for feedback at this point.Remaining upstream todo would be to detect type import/exports within https://github.com/unjs/mlly.