-
Notifications
You must be signed in to change notification settings - Fork 10
Move to new eng package, split build to CJS+ESM #173
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR modernizes the build infrastructure by migrating to the @microsoft/vscode-azext-eng package and implementing dual CJS/ESM output. Key changes include upgrading to ES2022, Node 22+, updating the ESLint configuration to the new flat config format, converting the test client extension to pure JavaScript, and fixing various lint issues that surfaced after dependency updates.
Key Changes:
- Migrated from CommonJS to dual CJS+ESM build output with separate
dist/cjsanddist/esmdirectories - Updated TypeScript target and module settings from ES2018/CommonJS to ES2022/ESM with bundler resolution
- Replaced custom ESLint configuration with
@microsoft/vscode-azext-engpackage standards - Updated multiple dependencies including
vscode-languageserver(8→9),yaml(2.2.2→2.8.2), and testing libraries
Reviewed changes
Copilot reviewed 43 out of 47 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| tsconfig.json | Updated to ES2022 target/lib, es2022 module with bundler resolution, output to dist/esm |
| package.json | Added dual module exports (CJS/ESM), new build scripts, updated to Node >=22, migrated to @microsoft/vscode-azext-eng |
| eslint.config.mjs | New flat ESLint config using azExtEslintRecommendedTypeChecked preset |
| .eslintrc.json (deleted) | Removed legacy ESLint config in favor of new flat config |
| src/test/**/*.test.ts | Removed unnecessary async keywords, updated import paths, fixed lint issues |
| src/test/clientExtension/* | Converted TypeScript files to JavaScript, removed tsconfig, updated paths to dist/cjs |
| src/service/**/*.ts | Fixed lint issues: updated named group access syntax, added eslint-disable comments, improved error handling |
| .vscode/* | Updated tasks/launch configs for new build structure |
| bin/docker-compose-langserver | Updated require path from lib/ to dist/cjs/ |
Files not reviewed (1)
- src/test/clientExtension/package-lock.json: Language not supported
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Plus some other things:
yamladded new diagnostics andvscode-languageserver-textdocumentstopped including newlines at the end ofTextDocument.getText())