Skip to content

feat: oagen updates to handle Golang#17

Merged
gjtorikian merged 9 commits intomainfrom
golang
Apr 9, 2026
Merged

feat: oagen updates to handle Golang#17
gjtorikian merged 9 commits intomainfrom
golang

Conversation

@gjtorikian
Copy link
Copy Markdown
Collaborator

plus, a bunch of other fixes, particularly around docstrings

gjtorikian and others added 9 commits April 7, 2026 15:01
Preserves OpenAPI parameter serialization metadata (style, explode) in
the IR so emitters can handle non-default query param encoding like
comma-joined arrays (explode=false).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Operation hints can now specify constant defaults (e.g., response_type:
'code') and inferFromClient fields (e.g., client_id) that emitters
inject at runtime instead of exposing in the public method signature.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…edup

Merger now tracks aliased export names (e.g., export { X as Y }) to
avoid appending re-exports that duplicate existing top-level exports.
Writer's import splicer checks whether identifiers are already covered
by more-specific generated imports before preserving barrel imports.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…matches

Two changes to the merger's docstring refresh:

1. When replacing an existing docstring with a generated one, carry over
   any @deprecated lines from the existing doc that aren't present in the
   generated doc. This prevents hand-written deprecation notices from being
   silently dropped during regeneration.

2. Make the URL fingerprint fallback (pass 2) more restrictive: only attempt
   fingerprint matching when there is exactly one unmatched generated member
   and one unmatched existing member for a given fingerprint. When multiple
   members share the same URL path (e.g., POST and GET on /authorization/roles),
   the previous greedy matching would swap docstrings between methods.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The regex for extracting @deprecated lines didn't match one-liner JSDoc
format (`/** @deprecated ... */`). Fix by checking for `@deprecated`
anywhere in the doc string, and strip trailing `*/` from matched lines
before inserting into the generated docstring.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Config generation is not a distinct pipeline stage — emitters that need
config files can emit them from generateClient or generateResources.
Removes the method from the Emitter contract, orchestrator, CLI init
template, and all tests.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Drop the config generator, its import, README mention, and test case
from the reference emitter example.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Update README, architecture docs, quickstart, minimal emitter guide,
and emitter contract to reflect the removal of generateConfig.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@gjtorikian gjtorikian merged commit babbf23 into main Apr 9, 2026
5 checks passed
@gjtorikian gjtorikian deleted the golang branch April 9, 2026 21:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant