fix: make plugin-kit
types usable in CommonJS
#143
+151
−10
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.
Prerequisites checklist
What is the purpose of this pull request?
This PR ensures that the
plugin-kit
types can be imported from a CommonJS module whenmoduleResolution
is one of'node16'
or'nodenext'
. This is currently not possible because of the way TypeScript handles imports of ESM modules in CommonJS.Repro
What changes did you make? (Give an overview)
Made sure that
packages/plugin/dist/cjs/index.d.cts
uses the"resolution-mode": "import"
import attribute to import./types.ts
.It's not possible to add the import attribute directly to the source code in
packages/plugin-kit/src/config-comment-parser.js
because then the same import attribute would appear also in the generated ESM types, and jsr does not like that (maybe because import attributes are not supported in TypeScript < 5.0).This is not the only possible fix, see also: eslint/json#66 (comment).
Other changes included in this PR:
@eslint/core
a runtime dependency of@eslint/plugin-kit
.@eslint/core
and@eslint/plugin-kit
can be imported from a.cts
file.@eslint/plugin-kit
.Related Issues
Is there anything you'd like reviewers to focus on?