KEMBAR78
feat: merge from upstream `oxc-project/oxc-resolver` - 3rd (abandoned) by JounQin · Pull Request #58 · unrs/unrs-resolver · GitHub
Skip to content

Conversation

@JounQin
Copy link
Member

@JounQin JounQin commented Apr 11, 2025

close #30


Important

Merge upstream changes from oxc-project/oxc-resolver, updating workflows, dependencies, and handling of ${configDir} in tsconfig.

  • Workflows:
    • Add riscv64gc-unknown-linux-gnu target to release-napi.yml.
    • Update release-plz-action version in release-plz.yml to v0.5.102.
  • Dependencies:
    • Update cc to 1.2.18, codspeed to 2.10.0, iana-time-zone to 0.1.63, redox_syscall to 0.5.11, smallvec to 1.15.0, and windows-core to 0.61.0 in Cargo.lock.
  • Template Variables:
    • Implement ${configDir} substitution in tsconfig.rs and tsconfig_serde.rs.
    • Add new test cases for ${configDir} in tsconfig_paths.rs and tsconfig_project_references.rs.
  • File Changes:
    • Rename foo.js to src/foo.js in fixtures/tsconfig and update related paths in test cases.
    • Remove package.metadata.cargo-machete from napi/Cargo.toml.

This description was created by Ellipsis for fced793. It will automatically update as commits are pushed.

Summary by CodeRabbit

  • New Features
    • Added support for building for the RISC-V architecture.
  • Bug Fixes
    • Enforced stricter checks during artifact uploads to catch missing files.
  • Refactor
    • Streamlined configuration for module resolution with updated source paths.
    • Improved the build process for clearer, more reliable setup.
  • Tests
    • Adjusted test expectations to align with the updated directory structure.
  • Chores
    • Upgraded workflow actions and package dependencies for better tooling support.

renovate bot and others added 7 commits April 6, 2025 18:05
This PR contains the following updates:

| Package | Type | Update | Change | Age | Adoption | Passing |
Confidence |
|---|---|---|---|---|---|---|---|
|  |  | lockFileMaintenance | All locks refreshed |  |  |  |  |
| [@napi-rs/cli](https://redirect.github.com/napi-rs/napi-rs) |
devDependencies | patch | [`3.0.0-alpha.76` ->
`3.0.0-alpha.77`](https://renovatebot.com/diffs/npm/@napi-rs%2fcli/3.0.0-alpha.76/3.0.0-alpha.77)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@napi-rs%2fcli/3.0.0-alpha.77?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@napi-rs%2fcli/3.0.0-alpha.77?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@napi-rs%2fcli/3.0.0-alpha.76/3.0.0-alpha.77?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@napi-rs%2fcli/3.0.0-alpha.76/3.0.0-alpha.77?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [@napi-rs/wasm-runtime](https://redirect.github.com/napi-rs/napi-rs)
([source](https://redirect.github.com/napi-rs/napi-rs/tree/HEAD/wasi-runtime))
| devDependencies | patch | [`0.2.7` ->
`0.2.8`](https://renovatebot.com/diffs/npm/@napi-rs%2fwasm-runtime/0.2.7/0.2.8)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@napi-rs%2fwasm-runtime/0.2.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@napi-rs%2fwasm-runtime/0.2.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@napi-rs%2fwasm-runtime/0.2.7/0.2.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@napi-rs%2fwasm-runtime/0.2.7/0.2.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@types/node](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node))
| devDependencies | minor | [`22.13.14` ->
`22.14.0`](https://renovatebot.com/diffs/npm/@types%2fnode/22.13.14/22.14.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/22.14.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fnode/22.14.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fnode/22.13.14/22.14.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/22.13.14/22.14.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [pnpm](https://pnpm.io)
([source](https://redirect.github.com/pnpm/pnpm/tree/HEAD/pnpm)) |
packageManager | patch | [`10.7.0` ->
`10.7.1`](https://renovatebot.com/diffs/npm/pnpm/10.7.0/10.7.1) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/pnpm/10.7.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/pnpm/10.7.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/pnpm/10.7.0/10.7.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/pnpm/10.7.0/10.7.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [typescript](https://www.typescriptlang.org/)
([source](https://redirect.github.com/microsoft/TypeScript)) |
devDependencies | patch | [`5.8.2` ->
`5.8.3`](https://renovatebot.com/diffs/npm/typescript/5.8.2/5.8.3) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/typescript/5.8.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/typescript/5.8.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/typescript/5.8.2/5.8.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/typescript/5.8.2/5.8.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [vitest](https://redirect.github.com/vitest-dev/vitest)
([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/vitest))
| devDependencies | minor | [`3.0.9` ->
`3.1.1`](https://renovatebot.com/diffs/npm/vitest/3.0.9/3.1.1) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vitest/3.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vitest/3.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vitest/3.0.9/3.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vitest/3.0.9/3.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

🔧 This Pull Request updates lock files to use the latest dependency
versions.

---

### Release Notes

<details>
<summary>napi-rs/napi-rs (@&#8203;napi-rs/cli)</summary>

###
[`v3.0.0-alpha.77`](https://redirect.github.com/napi-rs/napi-rs/compare/@napi-rs/cli@3.0.0-alpha.76...@napi-rs/cli@3.0.0-alpha.77)

[Compare
Source](https://redirect.github.com/napi-rs/napi-rs/compare/@napi-rs/cli@3.0.0-alpha.76...@napi-rs/cli@3.0.0-alpha.77)

</details>

<details>
<summary>napi-rs/napi-rs (@&#8203;napi-rs/wasm-runtime)</summary>

###
[`v0.2.8`](https://redirect.github.com/napi-rs/napi-rs/compare/@napi-rs/wasm-runtime@0.2.7...@napi-rs/wasm-runtime@0.2.8)

[Compare
Source](https://redirect.github.com/napi-rs/napi-rs/compare/@napi-rs/wasm-runtime@0.2.7...@napi-rs/wasm-runtime@0.2.8)

</details>

<details>
<summary>pnpm/pnpm (pnpm)</summary>

###
[`v10.7.1`](https://redirect.github.com/pnpm/pnpm/releases/tag/v10.7.1):
pnpm 10.7.1

[Compare
Source](https://redirect.github.com/pnpm/pnpm/compare/v10.7.0...v10.7.1)

#### Patch Changes

- `pnpm config set` should convert the settings to their correct type
before adding them to `pnpm-workspace.yaml`
[#&#8203;9355](https://redirect.github.com/pnpm/pnpm/issues/9355).
- `pnpm config get` should read auth related settings via npm CLI
[#&#8203;9345](https://redirect.github.com/pnpm/pnpm/issues/9345).
- Replace leading `~/` in a path in `.npmrc` with the home directory
[#&#8203;9217](https://redirect.github.com/pnpm/pnpm/issues/9217).

#### Platinum Sponsors

<table>
  <tbody>
    <tr>
      <td align="center" valign="middle">
<a href="https://bit.dev/?utm_source=pnpm&utm_medium=release_notes"
target="_blank"><img src="https://pnpm.io/img/users/bit.svg" width="80"
alt="Bit"></a>
      </td>
      <td align="center" valign="middle">
<a href="https://sanity.io/?utm_source=pnpm&utm_medium=release_notes"
target="_blank"><img src="https://pnpm.io/img/users/sanity.svg"
width="180" alt="Bit"></a>
      </td>
      <td align="center" valign="middle">
<a href="https://syntax.fm/?utm_source=pnpm&utm_medium=release_notes"
target="_blank">
          <picture>
<source media="(prefers-color-scheme: light)"
srcset="https://pnpm.io/img/users/syntaxfm.svg" />
<source media="(prefers-color-scheme: dark)"
srcset="https://pnpm.io/img/users/syntaxfm_light.svg" />
<img src="https://pnpm.io/img/users/syntaxfm.svg" width="90"
alt="Syntax" />
          </picture>
        </a>
      </td>
    </tr>
  </tbody>
</table>

#### Gold Sponsors

<table>
  <tbody>
    <tr>
      <td align="center" valign="middle">
<a href="https://discord.com/?utm_source=pnpm&utm_medium=release_notes"
target="_blank">
          <picture>
<source media="(prefers-color-scheme: light)"
srcset="https://pnpm.io/img/users/discord.svg" />
<source media="(prefers-color-scheme: dark)"
srcset="https://pnpm.io/img/users/discord_light.svg" />
<img src="https://pnpm.io/img/users/discord.svg" width="220"
alt="Discord" />
          </picture>
        </a>
      </td>
      <td align="center" valign="middle">
<a href="https://uscreen.de/?utm_source=pnpm&utm_medium=release_notes"
target="_blank">
          <picture>
<source media="(prefers-color-scheme: light)"
srcset="https://pnpm.io/img/users/uscreen.svg" />
<source media="(prefers-color-scheme: dark)"
srcset="https://pnpm.io/img/users/uscreen_light.svg" />
<img src="https://pnpm.io/img/users/uscreen.svg" width="180"
alt="u|screen" />
          </picture>
        </a>
      </td>
    </tr>
    <tr>
      <td align="center" valign="middle">
<a
href="https://www.jetbrains.com/?utm_source=pnpm&utm_medium=release_notes"
target="_blank">
          <picture>
<source media="(prefers-color-scheme: light)"
srcset="https://pnpm.io/img/users/jetbrains.svg" />
<source media="(prefers-color-scheme: dark)"
srcset="https://pnpm.io/img/users/jetbrains.svg" />
<img src="https://pnpm.io/img/users/jetbrains.svg" width="180"
alt="JetBrains" />
          </picture>
        </a>
      </td>
      <td align="center" valign="middle">
<a href="https://nx.dev/?utm_source=pnpm&utm_medium=release_notes"
target="_blank">
          <picture>
<source media="(prefers-color-scheme: light)"
srcset="https://pnpm.io/img/users/nx.svg?0" />
<source media="(prefers-color-scheme: dark)"
srcset="https://pnpm.io/img/users/nx_light.svg?0" />
<img src="https://pnpm.io/img/users/nx.svg" width="70" alt="Nx" />
          </picture>
        </a>
      </td>
    </tr>
    <tr>
      <td align="center" valign="middle">
<a
href="https://coderabbit.ai/?utm_source=pnpm&utm_medium=release_notes"
target="_blank">
          <picture>
<source media="(prefers-color-scheme: light)"
srcset="https://pnpm.io/img/users/coderabbit.svg" />
<source media="(prefers-color-scheme: dark)"
srcset="https://pnpm.io/img/users/coderabbit_light.svg" />
<img src="https://pnpm.io/img/users/coderabbit.svg" width="220"
alt="CodeRabbit" />
          </picture>
        </a>
      </td>
      <td align="center" valign="middle">
<a href="https://route4me.com/?utm_source=pnpm&utm_medium=release_notes"
target="_blank">
<img src="https://pnpm.io/img/users/route4me.svg" width="220"
alt="Route4Me" />
        </a>
      </td>
    </tr>
    <tr>
      <td align="center" valign="middle">
<a href="https://workleap.com/?utm_source=pnpm&utm_medium=release_notes"
target="_blank">
          <picture>
<source media="(prefers-color-scheme: light)"
srcset="https://pnpm.io/img/users/workleap.svg" />
<source media="(prefers-color-scheme: dark)"
srcset="https://pnpm.io/img/users/workleap_light.svg" />
<img src="https://pnpm.io/img/users/workleap.svg" width="190"
alt="Workleap" />
          </picture>
        </a>
      </td>
      <td align="center" valign="middle">
<a
href="https://stackblitz.com/?utm_source=pnpm&utm_medium=release_notes"
target="_blank">
          <picture>
<source media="(prefers-color-scheme: light)"
srcset="https://pnpm.io/img/users/stackblitz.svg" />
<source media="(prefers-color-scheme: dark)"
srcset="https://pnpm.io/img/users/stackblitz_light.svg" />
<img src="https://pnpm.io/img/users/stackblitz.svg" width="190"
alt="Stackblitz" />
          </picture>
        </a>
      </td>
    </tr>
  </tbody>
</table>

</details>

<details>
<summary>microsoft/TypeScript (typescript)</summary>

###
[`v5.8.3`](https://redirect.github.com/microsoft/TypeScript/compare/v5.8.2...68cead182cc24afdc3f1ce7c8ff5853aba14b65a)

[Compare
Source](https://redirect.github.com/microsoft/TypeScript/compare/v5.8.2...68cead182cc24afdc3f1ce7c8ff5853aba14b65a)

</details>

<details>
<summary>vitest-dev/vitest (vitest)</summary>

###
[`v3.1.1`](https://redirect.github.com/vitest-dev/vitest/releases/tag/v3.1.1)

[Compare
Source](https://redirect.github.com/vitest-dev/vitest/compare/v3.1.0...v3.1.1)

#####    🐞 Bug Fixes

-   **reporter**:
- Report tests in correct order  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/7752](https://redirect.github.com/vitest-dev/vitest/issues/7752)
[<samp>(b166e)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/b166efa2)
- Print test only once in the verbose mode  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/7738](https://redirect.github.com/vitest-dev/vitest/issues/7738)
[<samp>(69ca4)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/69ca425c)

#####     [View changes on
GitHub](https://redirect.github.com/vitest-dev/vitest/compare/v3.1.0...v3.1.1)

###
[`v3.1.0`](https://redirect.github.com/vitest-dev/vitest/releases/tag/v3.1.0)

[Compare
Source](https://redirect.github.com/vitest-dev/vitest/compare/v3.0.9...v3.1.0)

##### 🚀 Features

- Introduce `%$` option to add number of the test to its title - by
[@&#8203;kemuridama](https://redirect.github.com/kemuridama) in
[https://github.com/vitest-dev/vitest/issues/7412](https://redirect.github.com/vitest-dev/vitest/issues/7412)
[<samp>(df347)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/df3477076)
- Add `diff.maxDepth` option and set non-`Infinity` value as a default
to reduce crash - by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/7481](https://redirect.github.com/vitest-dev/vitest/issues/7481)
[<samp>(eacab)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/eacab25e7)
- Allow array element for `test.each/for` title formatting - by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/7522](https://redirect.github.com/vitest-dev/vitest/issues/7522)
[<samp>(ea3d6)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/ea3d67b03)
- Add "configureVitest" plugin hook - by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) and
[@&#8203;AriPerkkio](https://redirect.github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/7349](https://redirect.github.com/vitest-dev/vitest/issues/7349)
[<samp>(20a5d)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/20a5d4bfc)
- Support `--configLoader` CLI option - by
[@&#8203;Carnageous](https://redirect.github.com/Carnageous) and
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/7574](https://redirect.github.com/vitest-dev/vitest/issues/7574)
[<samp>(2a852)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/2a8520a83)
- Added `vitest-browser-lit` to `vitest init browser` and docs - by
[@&#8203;EskiMojo14](https://redirect.github.com/EskiMojo14) and
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/7705](https://redirect.github.com/vitest-dev/vitest/issues/7705)
[<samp>(5659a)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/5659a0e0c)
- Use providers request interception for module mocking - by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/7576](https://redirect.github.com/vitest-dev/vitest/issues/7576)
[<samp>(7883a)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/7883acd63)
-   **browser**:
- Introduce `and`, `or` and `filter` locators - by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) and
[@&#8203;AriPerkkio](https://redirect.github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/7463](https://redirect.github.com/vitest-dev/vitest/issues/7463)
[<samp>(63949)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/63949b1d7)
-   **reporter**:
- Always render test time - by
[@&#8203;AriPerkkio](https://redirect.github.com/AriPerkkio) and
[@&#8203;spamshaker](https://redirect.github.com/spamshaker) in
[https://github.com/vitest-dev/vitest/issues/7529](https://redirect.github.com/vitest-dev/vitest/issues/7529)
[<samp>(5eba6)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/5eba60ae1)
- `--silent=passed-only` to log failed tasks only - by
[@&#8203;AriPerkkio](https://redirect.github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/7530](https://redirect.github.com/vitest-dev/vitest/issues/7530)
[<samp>(f9e1c)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/f9e1cb494)
-   **runner**:
- Add `test.scoped` to override `test.extend` fixtures per-suite - by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/7233](https://redirect.github.com/vitest-dev/vitest/issues/7233)
[<samp>(e5851)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/e5851e4b8)
-   **vitest**:
- Allow conditional `context.skip(boolean)` - by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) and
[@&#8203;AriPerkkio](https://redirect.github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/7659](https://redirect.github.com/vitest-dev/vitest/issues/7659)
[<samp>(6adec)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/6adecb903)
- Support rolldown-vite in NormalizeUrlPlugin - by
[@&#8203;sapphi-red](https://redirect.github.com/sapphi-red) and
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/7739](https://redirect.github.com/vitest-dev/vitest/issues/7739)
[<samp>(1ef31)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/1ef31a7bb)

##### 🐞 Bug Fixes

- Update test stats regularly - by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/7700](https://redirect.github.com/vitest-dev/vitest/issues/7700)
[<samp>(b7953)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/b7953487b)
- Fix vm tests flakiness - by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/7741](https://redirect.github.com/vitest-dev/vitest/issues/7741)
[<samp>(2702c)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/2702cf424)
- Set `diff.expand: false` as default - by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/7697](https://redirect.github.com/vitest-dev/vitest/issues/7697)
[<samp>(f3420)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/f34206536)
-   **browser**:
- Correctly calculate timeout in hooks when actions are performed - by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/7747](https://redirect.github.com/vitest-dev/vitest/issues/7747)
[<samp>(a5505)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/a55055180)
-   **deps**:
- Update all non-major dependencies - by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/7600](https://redirect.github.com/vitest-dev/vitest/issues/7600)
[<samp>(7fc5a)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/7fc5a2908)
-   **reporter**:
- `--hideSkippedTests` should hide suites too - by
[@&#8203;AriPerkkio](https://redirect.github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/7695](https://redirect.github.com/vitest-dev/vitest/issues/7695)
[<samp>(ba9b5)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/ba9b51ccc)
- Report tests in correct order - by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/7752](https://redirect.github.com/vitest-dev/vitest/issues/7752)
[<samp>(b166e)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/b166efa28)
- Print test only once in the verbose mode - by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/7738](https://redirect.github.com/vitest-dev/vitest/issues/7738)
[<samp>(69ca4)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/69ca425c6)
-   **snapshot**:
- Fix indent normalization - by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/7400](https://redirect.github.com/vitest-dev/vitest/issues/7400)
[<samp>(82997)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/8299709d2)
- This change can cause small amount of very old snapshots to be
updated, but there will be no functional change to how they work.

##### 🏎 Performance

- **browser**: Fork jest-dom instead of bundling it - by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/7605](https://redirect.github.com/vitest-dev/vitest/issues/7605)
[<samp>(12762)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/12762ea6c)

##### [View changes on
GitHub](https://redirect.github.com/vitest-dev/vitest/compare/v3.0.9...v3.1.1)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "before 8am on monday" in timezone
Asia/Shanghai, Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/oxc-project/oxc-resolver).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMjcuMyIsInVwZGF0ZWRJblZlciI6IjM5LjIyNy4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|  |  | lockFileMaintenance | All locks refreshed |
| [mimalloc-safe](https://redirect.github.com/napi-rs/mimalloc-safe) |
dependencies | patch | `0.1.49` -> `0.1.50` |
| [indexmap](https://redirect.github.com/indexmap-rs/indexmap) |
dependencies | minor | `2.8.0` -> `2.9.0` |

🔧 This Pull Request updates lock files to use the latest dependency
versions.

---

### Release Notes

<details>
<summary>napi-rs/mimalloc-safe (mimalloc-safe)</summary>

###
[`v0.1.50`](https://redirect.github.com/napi-rs/mimalloc-safe/compare/v0.1.49...v0.1.50)

[Compare
Source](https://redirect.github.com/napi-rs/mimalloc-safe/compare/v0.1.49...v0.1.50)

</details>

<details>
<summary>indexmap-rs/indexmap (indexmap)</summary>

###
[`v2.9.0`](https://redirect.github.com/indexmap-rs/indexmap/blob/HEAD/RELEASES.md#290-2025-04-04)

[Compare
Source](https://redirect.github.com/indexmap-rs/indexmap/compare/2.8.0...2.9.0)

- Added a `get_disjoint_mut` method to `IndexMap`, matching Rust 1.86's
    `HashMap` method.
- Added a `get_disjoint_indices_mut` method to `IndexMap` and
`map::Slice`,
    matching Rust 1.86's `get_disjoint_mut` method on slices.
- Deprecated the `borsh` feature in favor of their own `indexmap`
feature,
    solving a cyclic dependency that occured via `borsh-derive`.

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "before 8am on monday" in timezone
Asia/Shanghai, Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/oxc-project/oxc-resolver).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMjcuMyIsInVwZGF0ZWRJblZlciI6IjM5LjIyNy4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
fixes #447

I took the opportunity to refactor and improve tsconfig extend.
@JounQin JounQin requested a review from Copilot April 11, 2025 10:34
@coderabbitai
Copy link

coderabbitai bot commented Apr 11, 2025

Walkthrough

This pull request introduces a new RISC-V target, updating the GitHub Actions workflows to install the necessary RISC-V compilers and enforcing stricter artifact upload checking. Several TypeScript configuration files have been modified: path mappings have shifted from a root to a src subdirectory, new configuration files have been added, and some redundant files have been removed. The internal build process for tsconfig has been streamlined by replacing template expansion with a dedicated build method. Package files also reflect dependency updates and target architecture expansion.

Changes

Files Change Summary
.github/workflows/release-napi.yml
.github/workflows/release-plz.yml
Added a new job for the riscv64gc-unknown-linux-gnu target, installing RISC-V compilers, setting environment variables, executing build commands, and enforcing an error on missing artifacts. Also, updated the release-plz-action version.
fixtures/tsconfig/cases/paths_template_variable/tsconfig.json
.../tsconfig1.json (removed)
.../tsconfig_base_url1.json
.../tsconfig_base_url2.json
.../tsconfig_extends1.json
.../tsconfig_extends2.json
.../tsconfig_extends3.json
.../tsconfig_extends4.json
Updated module path mappings from "${configDir}/foo.js" to "${configDir}/src/foo.js", added new configuration files for base URL/path mappings and extends relationships, and removed an obsolete config file.
fixtures/tsconfig/cases/project_references/app/tsconfig.json
.../tsconfig.nopaths.json
Updated references to use "../../paths_template_variable/tsconfig.json" instead of "tsconfig2.json" for consistent configuration resolution.
fixtures/tsconfig/tsconfig.json
.../tsconfig_template_variable1.json
.../tsconfig_template_variable2.json
.../tsconfig_template_variable3.json
.../tsconfig_template_variable4.json
Revised path mappings from foo.js to src/foo.js and introduced new template-based tsconfig files for improved module resolution.
napi/Cargo.toml
npm/package.json
package.json
Removed Cargo metadata that ignored the package, added "riscv64gc-unknown-linux-gnu" to supported targets, and updated dependency versions and the package manager version.
src/fs_cache.rs
src/tsconfig.rs
src/tsconfig_serde.rs
src/tests/tsconfig_paths.rs
src/tests/tsconfig_project_references.rs
Streamlined tsconfig processing by replacing the expansion of template variables with a dedicated build method, updated test expectations to account for the new src directory structure, and renamed test functions for clarity.

Sequence Diagram(s)

sequenceDiagram
    participant GH as GitHub Actions
    participant Comp as RISC-V Compiler Setup
    participant Build as Build Step (pnpm)
    participant Art as Artifact Upload
    GH->>Comp: Install riscv compilers (gcc, g++)
    Comp-->>GH: Set up environment variables
    GH->>Build: Execute build command for riscv target
    Build->>Art: Upload artifact (if files exist)
    Art-->>GH: Fail if no files found
Loading
sequenceDiagram
    participant FS as FSCache
    participant TC as TsConfig (build)
    participant TS as Template Substitution
    FS->>TC: Request tsconfig
    TC->>TS: Substitute TEMPLATE_VARIABLE in baseUrl & paths
    TS-->>TC: Return substituted values
    TC-->>FS: Return built tsconfig wrapped in Arc
Loading

Assessment against linked issues

Objective Addressed Explanation
Add support for riscv64gc-unknown-linux-gnu target [#30]

Poem

I'm a coding bunny, hopping through changes with care,
New RISC-V targets bloom, lifting builds into the air,
Paths now lead to src, where neat modules reside,
Workflows and tests align with a smooth, joyful stride,
With whiskers twitching to the beat of code, I hop on with pride!

Tip

⚡💬 Agentic Chat (Pro Plan, General Availability)
  • We're introducing multi-step agentic chat in review comments and issue comments, within and outside of PR's. This feature enhances review and issue discussions with the CodeRabbit agentic chat by enabling advanced interactions, including the ability to create pull requests directly from comments and add commits to existing pull requests.
✨ Finishing Touches
  • 📝 Generate Docstrings

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai plan to trigger planning for file edits and PR creation.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot reviewed 14 out of 29 changed files in this pull request and generated no comments.

Files not reviewed (15)
  • fixtures/tsconfig/cases/paths_template_variable/tsconfig.json: Language not supported
  • fixtures/tsconfig/cases/paths_template_variable/tsconfig1.json: Language not supported
  • fixtures/tsconfig/cases/paths_template_variable/tsconfig_base_url1.json: Language not supported
  • fixtures/tsconfig/cases/paths_template_variable/tsconfig_base_url2.json: Language not supported
  • fixtures/tsconfig/cases/paths_template_variable/tsconfig_extends1.json: Language not supported
  • fixtures/tsconfig/cases/paths_template_variable/tsconfig_extends2.json: Language not supported
  • fixtures/tsconfig/cases/paths_template_variable/tsconfig_extends3.json: Language not supported
  • fixtures/tsconfig/cases/paths_template_variable/tsconfig_extends4.json: Language not supported
  • fixtures/tsconfig/cases/project_references/app/tsconfig.json: Language not supported
  • fixtures/tsconfig/cases/project_references/app/tsconfig.nopaths.json: Language not supported
  • fixtures/tsconfig/tsconfig.json: Language not supported
  • fixtures/tsconfig/tsconfig_template_variable1.json: Language not supported
  • fixtures/tsconfig/tsconfig_template_variable2.json: Language not supported
  • fixtures/tsconfig/tsconfig_template_variable3.json: Language not supported
  • fixtures/tsconfig/tsconfig_template_variable4.json: Language not supported

@sonarqubecloud
Copy link

@codecov
Copy link

codecov bot commented Apr 11, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 93.20%. Comparing base (cc0f4fb) to head (fced793).

Additional details and impacted files
@@            Coverage Diff             @@
##             main      #58      +/-   ##
==========================================
+ Coverage   93.03%   93.20%   +0.16%     
==========================================
  Files          13       13              
  Lines        2830     2841      +11     
==========================================
+ Hits         2633     2648      +15     
+ Misses        197      193       -4     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Copy link

@ellipsis-dev ellipsis-dev bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍 Looks good to me! Reviewed everything up to fced793 in 2 minutes and 12 seconds

More details
  • Looked at 686 lines of code in 25 files
  • Skipped 4 files when reviewing.
  • Skipped posting 15 drafted comments based on config settings.
1. src/tsconfig_serde.rs:263
  • Draft comment:
    The result of json_strip_comments::strip(json) is discarded. Should assign its output to a variable and parse the stripped JSON to actually remove comments.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
2. src/fs_cache.rs:191
  • Draft comment:
    Good change – using tsconfig.build() instead of an ad‑hoc expand_template_variables() improves clarity. Ensure that build() fully replicates the intended substitutions.
  • Reason this comment was not posted:
    Comment looked like it was already resolved.
3. src/tsconfig_serde.rs:263
  • Draft comment:
    The call to json_strip_comments::strip(json) discards its result. Consider assigning the returned (comment‐stripped) string to a variable and using it for parsing.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
4. src/tsconfig.rs:145
  • Draft comment:
    The build method’s substitution of the ${configDir} variable using normalize_with() appears correct, but please verify that trimming the leading '/' (with trim_start_matches('/')) is consistent with TS behavior.
  • Reason this comment was not posted:
    Comment did not seem useful. Confidence is useful = 0% <= threshold 50%
    This comment is asking the PR author to verify consistency with TypeScript behavior, which falls under asking the author to confirm or double-check things. It doesn't provide a specific suggestion or point out a clear issue.
5. src/tsconfig.rs:226
  • Draft comment:
    In resolve_path_alias, the wildcard mapping logic selects the key with the longest prefix. Consider whether multiple matching patterns (or ties) need additional handling.
  • Reason this comment was not posted:
    Confidence changes required: 50% <= threshold 50%
    None
6. src/tests/tsconfig_paths.rs:250
  • Draft comment:
    Test cases for template variables and extended tsconfig files have been updated. Verify that expected outputs (such as 'src/foo.js') match the new substitution logic.
  • Reason this comment was not posted:
    Confidence changes required: 0% <= threshold 50%
    None
7. fixtures/tsconfig/cases/paths_template_variable/tsconfig_extends1.json:2
  • Draft comment:
    Typographical suggestion: It appears there's a tab character after the "extends": in the JSON property. For consistency and to avoid potential formatting issues, consider replacing the tab with a single space (or following the project's standard formatting).
  • Reason this comment was not posted:
    Decided after close inspection that this draft comment was likely wrong and/or not actionable: usefulness confidence = 10% vs. threshold = 50%
    While the comment is technically correct about the tab character, this is a very minor formatting issue. Most JSON parsers handle both tabs and spaces fine. This is the kind of thing that should be handled by automated formatting tools or linters, not manual code review comments. Making comments about whitespace formatting creates noise in the PR review.
    The tab character could potentially cause issues in some JSON parsers or tools. Maybe the project has strict formatting standards that require spaces over tabs.
    If there are formatting requirements, they should be enforced by automated tools. Manual comments about whitespace are not a good use of code review.
    Delete this comment as it addresses a minor formatting issue that should be handled by automated tools rather than manual review comments.
8. fixtures/tsconfig/cases/paths_template_variable/tsconfig_extends2.json:2
  • Draft comment:
    Minor formatting inconsistency: there's a tab character after the ':' in the JSON property on line 2. Consider replacing the tab with a standard space to maintain consistent formatting.
  • Reason this comment was not posted:
    Decided after close inspection that this draft comment was likely wrong and/or not actionable: usefulness confidence = 10% vs. threshold = 50%
    While the comment is technically correct about the tab character, formatting issues in JSON files are typically handled automatically by formatters or editors. This is a very minor formatting issue that doesn't affect functionality. The comment doesn't point out any logical or structural problems with the code.
    The tab character could theoretically cause issues with some JSON parsers or tools that expect strict formatting. Some teams might have strict formatting guidelines.
    JSON parsers generally handle both tabs and spaces fine, and if formatting is important to the team, they should be using automated formatters rather than manual review comments.
    This comment should be deleted as it addresses a trivial formatting issue that would be better handled by automated tools.
9. fixtures/tsconfig/cases/paths_template_variable/tsconfig_extends3.json:2
  • Draft comment:
    There is an unexpected tab character after the colon in the "extends" property. Consider replacing the tab with a single space for consistency with standard JSON formatting.
  • Reason this comment was not posted:
    Decided after close inspection that this draft comment was likely wrong and/or not actionable: usefulness confidence = 10% vs. threshold = 50%
    This is a new file being added, so it is about changes. The issue is a minor formatting inconsistency. While it's technically correct, JSON formatting issues are usually handled by automated formatters and linters. The comment doesn't point out a functional issue or code quality problem that would impact the codebase.
    The tab character could potentially cause issues with some JSON parsers or tools. Also, maintaining consistent formatting helps with code readability.
    While consistency is good, this is a very minor formatting issue that would be better handled by automated tools rather than manual review comments.
    This comment should be removed as it addresses a trivial formatting issue that would be better handled by automated tools.
10. fixtures/tsconfig/cases/paths_template_variable/tsconfig_extends4.json:2
  • Draft comment:
    The JSON file uses a tab character after the colon on line 2. It would be clearer to use a consistent spacing style (e.g., a single space) to avoid any confusion. This is a minor typographical issue.
  • Reason this comment was not posted:
    Decided after close inspection that this draft comment was likely wrong and/or not actionable: usefulness confidence = 10% vs. threshold = 50%
    While code style consistency is generally good, this is a very minor formatting issue in a JSON file. JSON is whitespace-insensitive, and most editors/IDEs will automatically format JSON files. This seems like an overly pedantic comment that doesn't affect functionality or maintainability in any meaningful way.
    Perhaps inconsistent spacing could make the codebase look messy and affect readability for developers viewing raw files. Maybe there's a team style guide that specifically calls for consistent JSON formatting.
    Even if there are style preferences, this is too minor to warrant a PR comment. Most teams would handle this via automated formatting tools rather than manual review comments.
    This comment should be deleted as it's too minor and focuses on purely cosmetic formatting that doesn't impact code quality or functionality.
11. src/tests/tsconfig_project_references.rs:9
  • Draft comment:
    Typo in comment: 'has defined it's own paths alias' should be 'has defined its own paths alias'.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
12. src/tests/tsconfig_project_references.rs:79
  • Draft comment:
    Typo in comment: 'has defined it's own paths alias' should be 'has defined its own paths alias'.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
13. src/tests/tsconfig_project_references.rs:139
  • Draft comment:
    Typo in comment: 'has defined it's own paths alias' should be 'has defined its own paths alias'.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
14. src/tsconfig.rs:155
  • Draft comment:
    Typographical error in comment: 'bases_base' should be 'paths_base' to accurately reflect the related property.
  • Reason this comment was not posted:
    Decided after close inspection that this draft comment was likely wrong and/or not actionable: usefulness confidence = 10% vs. threshold = 50%
    While the comment is technically correct about the typo, fixing a minor typo in a comment is not a critical code change. The typo doesn't affect functionality and the meaning is still clear from context. According to the rules, we should not make purely informative comments or comments that are unimportant.
    The typo could potentially confuse future developers reading the code. Documentation accuracy is important for maintainability.
    While documentation accuracy matters, this is an extremely minor issue that doesn't meaningfully impact code understanding. The rules explicitly state not to make unimportant comments.
    This comment should be deleted as it addresses a trivial documentation issue that doesn't require immediate attention.
15. src/tsconfig.rs:179
  • Draft comment:
    Typo in documentation: Consider changing 'All tests cases' to 'All test cases' for grammatical correctness.
  • Reason this comment was not posted:
    Decided after close inspection that this draft comment was likely wrong and/or not actionable: usefulness confidence = 0% vs. threshold = 50%
    While the typo fix is technically correct, the line was only moved as part of a larger refactoring - the content itself wasn't changed. The rules state we should only comment on actual changes, not just moved code. Additionally, minor documentation typos are not critical issues requiring immediate fixes.
    The typo does impact readability slightly and would be easy to fix. Maybe we should keep minor improvements even on moved code?
    No, the rules are clear that we should only comment on actual changes, not moved code. The typo is minor and can be fixed in a future cleanup if needed.
    Delete this comment since it's about moved code rather than changed code, and addresses a minor documentation issue rather than a substantive problem.

Workflow ID: wflow_60PrttjYRGZwoDet


You can customize Ellipsis with 👍 / 👎 feedback, review rules, user-specific overrides, quiet mode, and more.

@codspeed-hq
Copy link

codspeed-hq bot commented Apr 11, 2025

CodSpeed Performance Report

Merging #58 will not alter performance

Comparing chore/merge_upstream (fced793) with main (cc0f4fb)

Summary

✅ 3 untouched benchmarks

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (1)
src/tests/tsconfig_paths.rs (1)

250-256: Switching all path checks to src/foo.js
These lines uniformly point to src/foo.js, demonstrating the new structure. Make sure no references to the old foo.js persist in unrelated tests.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between cc0f4fb and fced793.

⛔ Files ignored due to path filters (2)
  • Cargo.lock is excluded by !**/*.lock
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (25)
  • .github/workflows/release-napi.yml (2 hunks)
  • .github/workflows/release-plz.yml (1 hunks)
  • fixtures/tsconfig/cases/paths_template_variable/tsconfig.json (1 hunks)
  • fixtures/tsconfig/cases/paths_template_variable/tsconfig1.json (0 hunks)
  • fixtures/tsconfig/cases/paths_template_variable/tsconfig_base_url1.json (1 hunks)
  • fixtures/tsconfig/cases/paths_template_variable/tsconfig_base_url2.json (1 hunks)
  • fixtures/tsconfig/cases/paths_template_variable/tsconfig_extends1.json (1 hunks)
  • fixtures/tsconfig/cases/paths_template_variable/tsconfig_extends2.json (1 hunks)
  • fixtures/tsconfig/cases/paths_template_variable/tsconfig_extends3.json (1 hunks)
  • fixtures/tsconfig/cases/paths_template_variable/tsconfig_extends4.json (1 hunks)
  • fixtures/tsconfig/cases/project_references/app/tsconfig.json (1 hunks)
  • fixtures/tsconfig/cases/project_references/app/tsconfig.nopaths.json (1 hunks)
  • fixtures/tsconfig/tsconfig.json (1 hunks)
  • fixtures/tsconfig/tsconfig_template_variable1.json (1 hunks)
  • fixtures/tsconfig/tsconfig_template_variable2.json (1 hunks)
  • fixtures/tsconfig/tsconfig_template_variable3.json (1 hunks)
  • fixtures/tsconfig/tsconfig_template_variable4.json (1 hunks)
  • napi/Cargo.toml (0 hunks)
  • npm/package.json (1 hunks)
  • package.json (1 hunks)
  • src/fs_cache.rs (1 hunks)
  • src/tests/tsconfig_paths.rs (6 hunks)
  • src/tests/tsconfig_project_references.rs (2 hunks)
  • src/tsconfig.rs (5 hunks)
  • src/tsconfig_serde.rs (1 hunks)
💤 Files with no reviewable changes (2)
  • napi/Cargo.toml
  • fixtures/tsconfig/cases/paths_template_variable/tsconfig1.json
🧰 Additional context used
🧬 Code Graph Analysis (1)
src/fs_cache.rs (3)
src/tsconfig_serde.rs (1)
  • tsconfig (247-249)
src/tsconfig.rs (1)
  • tsconfig (360-360)
src/lib.rs (2)
  • tsconfig (1275-1278)
  • new (150-157)
🔇 Additional comments (43)
fixtures/tsconfig/cases/paths_template_variable/tsconfig_extends3.json (1)

1-3: New JSON extension configuration.
This file extends from ../../tsconfig_template_variable3.json, promoting a modular approach to managing TypeScript configurations. Please verify that the referenced template exists and remains consistent with the project’s configuration strategy.

fixtures/tsconfig/cases/paths_template_variable/tsconfig_extends2.json (1)

1-3: New JSON extension configuration.
The file extends from ../../tsconfig_template_variable2.json, which is in line with the broader modular configuration improvements. All looks good—just ensure that the inherited settings in the template are up-to-date.

fixtures/tsconfig/tsconfig.json (1)

3-5: Updated module path mapping.
The "ts-path" alias now correctly points to ["src/foo.js"], reflecting the reorganization of the project’s directory structure. Please double-check that the source file has been relocated accordingly and that all dependent modules reference the new path.

npm/package.json (1)

40-42: Addition of RISC-V target architecture.
The target "riscv64gc-unknown-linux-gnu" has been added to the napi.targets array. This change expands the supported platforms and is consistent with the new RISC-V build support introduced in the workflows. Please ensure that the CI/CD pipelines and build scripts are properly configured to handle this target.

fixtures/tsconfig/cases/paths_template_variable/tsconfig_extends1.json (1)

1-3: New TypeScript configuration extension file.
This file extends from ../../tsconfig_template_variable1.json, which aligns with the recent restructuring (notably replacing the old tsconfig1.json). Its minimal structure is appropriate and helps keep configuration management modular.

fixtures/tsconfig/cases/paths_template_variable/tsconfig_extends4.json (1)

1-3: Review of JSON Configuration Extension

This new file correctly extends the configuration from the provided template at "../../tsconfig_template_variable4.json". Please verify that the relative path accurately points to the intended template based on your repository structure.

fixtures/tsconfig/tsconfig_template_variable3.json (1)

1-9: Validation of TypeScript Compiler Options

The configuration properly sets "baseUrl" to "." and maps the module "foo" to "${configDir}/src/foo.js". Ensure that the variable "configDir" is defined in the appropriate context or that a build process substitutes it as expected.

fixtures/tsconfig/tsconfig_template_variable4.json (1)

1-9: Verification of Compiler Options and Module Paths

The file is well-formed and defines the compiler options using "${configDir}" as the base URL, with the "paths" mapping consistently resolving "foo" to "${configDir}/src/foo.js". Confirm that the ${configDir} substitution is supported and resolved correctly in your build process.

fixtures/tsconfig/tsconfig_template_variable2.json (1)

1-9: Assessment of Relative Path Mapping

This configuration sets "baseUrl" to "${configDir}" and maps "foo" to "./src/foo.js". Double-check that the relative path is intended to be resolved against the base URL and that it aligns with the overall project directory structure.

fixtures/tsconfig/cases/project_references/app/tsconfig.nopaths.json (1)

16-18: Update of Project Reference

The reference path in the "references" array has been updated to "../../paths_template_variable/tsconfig.json". Please verify that this change accurately reflects the restructured project layout and that the referenced configuration file exists in the specified location.

fixtures/tsconfig/tsconfig_template_variable1.json (1)

4-4: Update Path Mapping for "foo":
The path mapping for the "foo" module has been updated to reference "${configDir}/src/foo.js", aligning with the new directory structure. Please verify that all import statements and build processes have been adjusted accordingly.

fixtures/tsconfig/cases/paths_template_variable/tsconfig.json (1)

5-5: Consistent Update for "foo" Path:
The mapping for "foo" has been modified to "${configDir}/src/foo.js", ensuring consistency with the updated project layout. Confirm that this change properly integrates with any composite builds or downstream reference requirements.

fixtures/tsconfig/cases/paths_template_variable/tsconfig_base_url1.json (1)

1-9: New Configuration for Base URL and Aliasing:
This new configuration file sets the baseUrl to "${configDir}" and provides a path alias "@/*" pointing to "./src/*". This addition supports a more flexible module resolution strategy. Double-check that any refactoring or import adjustments needed for this alias are in place across the project.

fixtures/tsconfig/cases/project_references/app/tsconfig.json (1)

20-21: Updated Project Reference:
The reference now points to "../../paths_template_variable/tsconfig.json" instead of an older configuration file. This update aligns the project reference with the new path mapping conventions. Ensure that the referenced configuration file is correctly integrated with the project’s build process.

.github/workflows/release-plz.yml (1)

31-35: Bumped Release Plz Action Version:
The workflow now uses MarcoIeni/release-plz-action@7419a2cb1535b9c0e852b4dec626967baf65c022 (v0.5.102). Please verify that this updated action version is compatible with the rest of the workflow and that its new features or fixes support the intended release process without introducing regressions.

fixtures/tsconfig/cases/paths_template_variable/tsconfig_base_url2.json (1)

1-8: Well-structured TypeScript path mapping configuration

This configuration correctly sets up path resolution with a template variable for the base URL and maps @/* imports to the ./src/* directory. The configuration follows TypeScript standards and provides a clean way to organize imports.

package.json (2)

19-19: Appropriate use of caret versioning for dependency

Changing from fixed version "3.0.0-alpha.77" to caret version "^3.0.0-alpha.77" allows for compatible minor and patch updates while preventing breaking changes. This follows semantic versioning best practices.


26-26: Package manager version update

The update from pnpm@10.7.1 to pnpm@10.8.0 is a minor version change that likely includes improvements and bug fixes. This is a standard maintenance update.

src/tsconfig_serde.rs (2)

9-9: Clean import statement

The import is organized properly and appears to include all necessary components for the current implementation.


262-268: Improved parse method with simpler structure

The parse method has been simplified by removing the base_url normalization and paths_base handling logic. This refactoring aligns with the changes in the codebase where template variable handling has been moved to a dedicated build method in another file, improving separation of concerns.

src/tests/tsconfig_project_references.rs (2)

42-42: Updated path to reflect new directory structure

The test case has been correctly updated to use dir.join("src/foo.js") instead of dir.join("foo.js"), reflecting the move of JavaScript files to the src subdirectory. This change aligns with the updated path mappings in the TypeScript configuration.


65-65: Consistent path update in test expectations

This change is consistent with the previous update to use dir.join("src/foo.js") for the expected path, ensuring the test cases correctly validate the new directory structure.

src/fs_cache.rs (1)

192-192: Use of build() for tsconfig object creation
Replacing expand_template_variables() with build() centralizes the logic for template variable resolution. Please verify that downstream code correctly handles the new build() semantics—particularly for extended tsconfigs—and confirm that non-root configs won’t trigger unwanted substitutions.

.github/workflows/release-napi.yml (2)

85-92: Adding RISC-V target to the build matrix
These steps correctly install and set up the RISC-V cross-compiler. Note that you might also consider caching the downloaded packages or verifying that further dependencies aren’t needed if future steps rely on external libraries.


137-137: Ensuring artifact upload fails if none found
Setting if-no-files-found: error helps detect missing build artifacts early and prevents silent passing of a failing job. This is a robust improvement to the workflow.

src/tests/tsconfig_paths.rs (6)

14-14: Renaming test function for clarity
Renaming the function from a generic name to tsconfig_resolve clarifies its intention to specifically test resolution using tsconfig.


19-19: Updated expected path to src/foo.js
The test now expects the file within src/, aligning with the new directory layout for tested modules.


48-48: Referencing src/foo.js in test assertions
This update reflects the shifted directory structure. Ensure the fixture is correctly set up at src/foo.js to avoid broken path references.


136-136: Invoking .build() after .parse()
Calling .build() here finalizes and normalizes the tsconfig, replacing previous manual expansions. This is consistent with the new approach in src/tsconfig.rs.


166-166: Applying .build() for baseUrl resolution
Again, ensures that any template variable logic is handled in one place—good consistency.


197-197: Ensuring test coverage for .build()
Verifies that newly added logic in .build() is tested under various scenarios. Confirm that extended configurations also pass.

src/tsconfig.rs (12)

2-2: Importing Debug
Adding Debug ensures richer diagnostics and consistent trait bounds throughout the tsconfig types.


13-14: Introducing TEMPLATE_VARIABLE constant
Defining ${configDir} as a clear constant improves maintainability and consistency for future expansions or references.


23-24: Extending TsConfig and its associated type with Debug
Requiring Debug coverage makes these types more transparent for logging, testing, or error-handling scenarios.


83-83: Conditional logic for base_url()
This guard checks if baseUrl is present before populating from the extended tsconfig. Confirm that collisions between chained tsconfigs are resolved as expected.


131-133: Documentation for the new build() method
Providing a clear doc block clarifies how final expansions and directory calculations happen. This lowers confusion when reading or maintaining code.


137-142: build() early-return for non-root tsconfigs
If root() is false, it skips expansions—good approach to avoid double expansions or incorrect directory resolutions in extended configs.


145-151: Resolving baseUrl to absolute path
This logic joins paths with config_dir, handling the template variable. Ensure tests cover corner cases like leading/trailing slashes or Windows UNC paths.


154-154: Checking whether paths exist
This confirms the presence of a paths map before trying to apply transformations. Defensive checks reduce the risk of runtime errors.


155-158: Applying base_url as paths_base
This sets the correct base path to unify how path aliases resolve in the final config. Helps maintain consistency across nested references.


161-166: Template substitution in paths
Tying each path to config_dir ensures template variables like ${configDir} are expanded properly. Must confirm that trailing or leading slashes are also handled.


173-174: Completing the build() method
Method returns the updated tsconfig, finishing the scope of expansions. Straightforward flow.


176-181: Introducing substitute_template_variable
Isolating this logic keeps the code base more organized. This approach is more flexible if additional template variables appear in future.

@JounQin JounQin merged commit a3b42a8 into main Apr 11, 2025
24 checks passed
@JounQin JounQin deleted the chore/merge_upstream branch April 11, 2025 10:55
@coderabbitai coderabbitai bot mentioned this pull request Apr 11, 2025
@JounQin JounQin restored the chore/merge_upstream branch April 11, 2025 11:02
@JounQin JounQin changed the title feat: merge from upstream oxc-project/oxc-resolver - 3rd feat: merge from upstream oxc-project/oxc-resolver - 3rd (abandoned) Apr 11, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants