Latest Results
test(tsconfig): port lookup scenarios from typescript-go (#1155)
## Summary
Adds `src/tests/tsconfig_lookup.rs` (26 tests; 25 passing, 1 ignored)
plus matching fixtures under `fixtures/tsconfig/cases/`, covering every
place the resolver needs to find or apply a tsconfig.
- **Error paths** — circular extends, self-extends, self-reference in
`references`, empty `extends` string.
- **Extends path resolution** — `node_modules` subpath
(`pkg/sub/...json`), `@scoped/pkg`, package `tsconfig.json`, explicit
`.json` extension, folder-style (`./base` → `./base/tsconfig.json`).
- **Extends array semantics** — diamond inheritance ✓, plus an ignored
`extends_array_last_wins` that documents a divergence from
typescript-go: `applyExtendedConfig` + `mergeCompilerOptions` apply
*later-wins*, but oxc-resolver's `extend_tsconfig` only fills `None`
fields, so the *first* base wins.
- **`paths` semantics** — empty array, exact vs wildcard,
longest-prefix, multi-substitution first-existing wins, child overrides
extended, inherited `paths_base` anchors at the parent that declared
`paths`, no-`baseUrl` anchors at config dir, explicit-extension target,
prefix-`*`-suffix wildcard, single `*` pattern.
- **`${configDir}` substitution** — in `rootDirs`.
- **Edge cases** — empty `extends: []`, extending a config without
`compilerOptions`, `baseUrl`-only resolution.
- **Project references** — two refs each resolving `@shared/*` through
their own paths configs.
🤖 Generated with [Claude Code](https://claude.com/claude-code) test(tsconfig): port lookup scenarios from typescript-go
Adds src/tests/tsconfig_lookup.rs with 26 scenarios (25 passing, 1
ignored) plus matching fixtures, covering every place the resolver
needs to find or apply a tsconfig:
- Error paths: circular extends, self-extends, self-reference in
`references`, empty `extends` string.
- Extends path resolution: node_modules subpath (`pkg/sub/...json`),
`@scoped/pkg`, package's `tsconfig.json`, explicit `.json`,
folder-style (`./base` -> `./base/tsconfig.json`).
- Extends array semantics: diamond inheritance, and `last-wins`
ignored as it uncovers a divergence from typescript-go
(`applyExtendedConfig` + `mergeCompilerOptions` apply later-wins;
oxc-resolver currently applies first-wins).
- `paths`: empty array, exact-vs-wildcard, longest-prefix,
multi-substitution first-existing wins, child overrides extended,
inherited paths_base anchors at the parent that declared paths,
no-baseUrl anchors at config dir, explicit-extension target,
prefix-`*`-suffix wildcard, single `*` pattern.
- `${configDir}` substitution in `rootDirs`.
- Edge cases: empty `extends: []`, extending a config without
`compilerOptions`, `baseUrl`-only resolution.
- Project references: two refs each resolving `@shared/*` through
their own paths configs.test-tsconfig-lookup-scenarios Latest Branches
-6%
1011-tsconfig-with-context 0%
release-plz-2026-03-02T05-19-13Z 0%
fix-tsconfig-extends-array-last-wins © 2026 CodSpeed Technology