languageserver: add .js extensions to imports (ESM prep)#259
Merged
Conversation
52c2bec to
c4af83e
Compare
Contributor
There was a problem hiding this comment.
Pull request overview
This PR adds .js extensions to all relative imports in the languageserver package as a preparatory step for ESM migration. The full migration is blocked because vscode-languageserver@8.0.2 lacks proper ESM exports with an exports field for subpath imports.
Key changes:
- Added
.jsextensions to relative imports across 24 source files inlanguageserver/src/ - Added
skipLibCheck: truetolanguageserver/tsconfig.build.jsonto work around type errors in@types/node - Updated documentation in
docs/esm-migration-plan.mdto reflect partial migration status
Reviewed changes
Copilot reviewed 26 out of 26 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| languageserver/tsconfig.build.json | Added skipLibCheck: true compiler option |
| languageserver/src/value-providers/runs-on.ts | Updated relative imports to include .js extensions |
| languageserver/src/value-providers/job-environment.ts | Updated relative imports to include .js extensions |
| languageserver/src/value-providers/action-inputs.ts | Updated relative imports to include .js extensions |
| languageserver/src/value-providers.ts | Updated relative imports to include .js extensions |
| languageserver/src/utils/username.ts | Updated relative imports to include .js extensions |
| languageserver/src/utils/repo-permission.ts | Updated relative imports to include .js extensions |
| languageserver/src/utils/action-metadata.ts | Updated relative imports to include .js extensions |
| languageserver/src/utils/action-metadata.test.ts | Updated relative imports to include .js extensions |
| languageserver/src/on-completion.ts | Updated relative imports to include .js extensions |
| languageserver/src/index.ts | Updated relative imports to include .js extensions |
| languageserver/src/file-provider.ts | Updated relative imports to include .js extensions |
| languageserver/src/description-providers/action-input.ts | Updated relative imports to include .js extensions |
| languageserver/src/description-providers/action-input.test.ts | Updated relative imports to include .js extensions |
| languageserver/src/description-providers/action-description.ts | Updated relative imports to include .js extensions |
| languageserver/src/description-providers/action-description.test.ts | Updated relative imports to include .js extensions |
| languageserver/src/description-provider.ts | Updated relative imports to include .js extensions |
| languageserver/src/context-providers/variables.ts | Updated relative imports to include .js extensions |
| languageserver/src/context-providers/steps.ts | Updated relative imports to include .js extensions |
| languageserver/src/context-providers/steps.test.ts | Updated relative imports to include .js extensions |
| languageserver/src/context-providers/secrets.ts | Updated relative imports to include .js extensions |
| languageserver/src/context-providers/action-outputs.ts | Updated relative imports to include .js extensions |
| languageserver/src/context-providers.ts | Updated relative imports to include .js extensions |
| languageserver/src/context-providers.test.ts | Updated relative imports to include .js extensions |
| languageserver/src/connection.ts | Updated relative imports to include .js extensions |
| docs/esm-migration-plan.md | Updated migration status, added TL;DR section, documented skipLibCheck requirement, and updated completion status for languageserver package |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
rentziass
approved these changes
Jan 2, 2026
c4af83e to
df0c692
Compare
4 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
Adds
.jsextensions to all relative imports in the languageserver package as preparation for ESM migration.This is a partial migration for package
languageserverwhich is blocked from completing the migration becausevscode-languageserver@8.0.2lacks ESM exports.Follow-up from PR:
Related Issues:
moduleResolutionfromnodetonode16ornodenextin tsconfig #154@actions/workflow-parser#146Changes
languageserver/src/to use.jsextensions in importsskipLibCheck: truetolanguageserver/tsconfig.build.json(required for@types/nodecompatibility)docs/esm-migration-plan.mdwith current status and documentationpackage-lock.jsonWhy partial?
Full migration requires
moduleResolution: "node16", which fails becausevscode-languageserverdoesn't have anexportsfield for subpath imports likevscode-languageserver/node. Once stable v10+ releases with ESM support, we can complete the migration.