Conversation
There was a problem hiding this comment.
Pull Request Overview
This PR upgrades TypeScript configuration to support TypeScript 7, requires Node 24, and modernizes the development toolchain. The changes include updating package dependencies, migrating eslint configuration from MJS to TypeScript, and adding new build tools and compiler options.
- Updates minimum Node.js requirement from 22.15 to 24
- Adds TypeScript 7 support with native preview packages and new build tools
- Migrates ESLint configuration from
.mjsto.tsformat with improved type safety
Reviewed Changes
Copilot reviewed 8 out of 9 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| package.json | Version bump to 10.0.0, dependency updates, adds new build tools and TypeScript 7 support |
| eslint.config.ts | New TypeScript-based ESLint configuration replacing the MJS version |
| eslint.config.mjs | Removal of old MJS-based ESLint configuration |
| src/compile.ts | Adds async keyword to map callback function |
| src/test/lib/es2026.spec.ts | Adds TypeScript error suppression comment for Error.isError |
| SECURITY.md | Updates supported version table to reflect 10.x series |
| README.md | Updates Node.js requirement documentation |
| .github/workflows/ci.yml | Removes Node 22.x from CI matrix, keeping only 24.x |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
| const entries = await fs.readdir(directory, { withFileTypes: true }); | ||
| const files = await Promise.all( | ||
| entries.map((entry) => { | ||
| entries.map(async (entry) => { |
There was a problem hiding this comment.
Adding async to the map callback creates an array of Promises instead of the expected values. The getFiles call should be awaited, but since this is inside Promise.all(), the current logic is broken. Either remove async or await the getFiles(result) call.
| entries.map(async (entry) => { | |
| entries.map((entry) => { |
There was a problem hiding this comment.
Pull Request Overview
Copilot reviewed 8 out of 9 changed files in this pull request and generated 1 comment.
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
src/compile.ts
Outdated
| entries.map((entry) => { | ||
| entries.map(async (entry) => { | ||
| const result = path.resolve(directory, entry.name); | ||
| return entry.isDirectory() ? getFiles(result) : result; |
There was a problem hiding this comment.
The function is marked as async but doesn't await the recursive getFiles(result) call. This will return a Promise instead of the expected string array. Change to return entry.isDirectory() ? await getFiles(result) : result;
| return entry.isDirectory() ? getFiles(result) : result; | |
| return entry.isDirectory() ? await getFiles(result) : result; |
There was a problem hiding this comment.
Pull Request Overview
Copilot reviewed 8 out of 9 changed files in this pull request and generated 1 comment.
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
src/test/lib/es2026.spec.ts
Outdated
| await (process.version < 'v24' ? describe.skip : describe)('es2026', () => { | ||
| // https://github.com/tc39/proposal-is-error | ||
| it('supports Error.isError', async () => { | ||
| // @ts-expect-error an error in TypeScript 5.8/7, but valid in 5.9 |
There was a problem hiding this comment.
The comment mentions 'TypeScript 5.8/7' which is confusing. It should either be '5.8' or clarify what is meant by '5.8/7'. If referring to TypeScript 7, it should be written as 'TypeScript 7.0' for clarity.
| // @ts-expect-error an error in TypeScript 5.8/7, but valid in 5.9 | |
| // @ts-expect-error an error in TypeScript 5.8, but valid in 5.9 |
There was a problem hiding this comment.
Pull Request Overview
Copilot reviewed 6 out of 7 changed files in this pull request and generated no new comments.
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
# Conflicts: # README.md # package-lock.json # package.json
# Conflicts: # package-lock.json # package.json
|
Beta Published - Install Command: |
Fixes #81