Fix IR.Context and IR.ReferenceObject self-referencing types #2905
+67
−3
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.
After v0.86, the DTS bundler (rolldown-plugin-dts) generates self-referencing type aliases in the IR namespace, causing TypeScript to resolve
IR.ContextandIR.ReferenceObjectasany.Root cause: The bundler incorrectly resolves
IRContext(imported as alias) toContextwithin the namespace scope, creating circular references:Changes:
import type { Context as IRContext }→import type { Context }with explicit aliastype IRContext<Spec> = Context<Spec>ReferenceObjectfrom OpenAPI spec types and created aliastype IRReferenceObject = ReferenceObjectResult:
Side effect: Proper typing exposed existing bug in
debug/ir.tswhere optionaloperation.operationIdwas accessed without null check. Fixed with?? operation.idfallback.Related: sxzz/rolldown-plugin-dts#115
Original prompt
IR.Contextis incorrectly typed with recursive any after 0.86 #2904✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.