Skip to content

feat(codegen): convert-time patches for every dialect, verbNoun by default - #545

Open
Mkassabov wants to merge 3 commits into
mainfrom
feat/verbnoun-convert-finalize
Open

feat(codegen): convert-time patches for every dialect, verbNoun by default#545
Mkassabov wants to merge 3 commits into
mainfrom
feat/verbnoun-convert-finalize

Conversation

@Mkassabov

Copy link
Copy Markdown
Collaborator

What

Convert-time RFC-6902 patching is no longer OpenAPI-only. Every convert path ends in finalizeConvert (OpenAPI, GraphQL, discovery, proto, Cloudflare markdown). generate only compiles .generated-specs.

Operation names default to verbNoun (listApps, getApp, createContainer, createProject). Existing Smithy models were renamed in place and SDKs regenerated.

Pipeline

spec → dialect convert → Smithy patches → verbNoun → .generated-specs
                                                      ↓
                                              generate → src/services
  • OpenAPI /paths patches still run before conversion.
  • /shapes and /metadata patches run on the Smithy model after conversion.
  • bun scripts/finalize-converts.ts re-applies this to committed models without re-fetching specs.

Naming

toVerbNoun handles go-swagger Apps_list, REST ConfigsList / ContainerCreate, GraphQL projectCreate, and already-verb-first ids (getObject, listSprites). showget. Compounds with two verbs (AppGetOrCreate) are left alone.

Not in this PR

AWS still generates from vendored Smithy (no .generated-specs); its typed patch config is unchanged. Fly /v1 pointer restoration is the other PR.

…fault

RFC-6902 Smithy patches and verbNoun operation names run in
finalizeConvert at the end of every convert path (OpenAPI, GraphQL,
discovery, proto, Cloudflare markdown). generate only compiles
.generated-specs.

OpenAPI and GraphQL default to operationNaming: "verbNoun"
(Apps_list / ConfigsList / projectCreate → listApps / listConfigs /
createProject). Existing generated models were renamed in place and
SDKs regenerated.
The package is not on main; only the convert script was staged.
@alchemy-version-bot

alchemy-version-bot Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

Install the packages built from this commit:

Distilled

@distilled.cloud/core

bun add https://pkg.ing/@distilled.cloud/core/f29557b

@distilled.cloud/aws

bun add https://pkg.ing/@distilled.cloud/aws/f29557b

@distilled.cloud/axiom

bun add https://pkg.ing/@distilled.cloud/axiom/f29557b

@distilled.cloud/azure

bun add https://pkg.ing/@distilled.cloud/azure/f29557b

@distilled.cloud/cloudflare

bun add https://pkg.ing/@distilled.cloud/cloudflare/f29557b

@distilled.cloud/coinbase

bun add https://pkg.ing/@distilled.cloud/coinbase/f29557b

@distilled.cloud/discord

bun add https://pkg.ing/@distilled.cloud/discord/f29557b

@distilled.cloud/expo-eas

bun add https://pkg.ing/@distilled.cloud/expo-eas/f29557b

@distilled.cloud/fly-io

bun add https://pkg.ing/@distilled.cloud/fly-io/f29557b

@distilled.cloud/gcp

bun add https://pkg.ing/@distilled.cloud/gcp/f29557b

@distilled.cloud/github

bun add https://pkg.ing/@distilled.cloud/github/f29557b

@distilled.cloud/hetzner

bun add https://pkg.ing/@distilled.cloud/hetzner/f29557b

@distilled.cloud/kubernetes

bun add https://pkg.ing/@distilled.cloud/kubernetes/f29557b

@distilled.cloud/mongodb-atlas

bun add https://pkg.ing/@distilled.cloud/mongodb-atlas/f29557b

@distilled.cloud/neon

bun add https://pkg.ing/@distilled.cloud/neon/f29557b

@distilled.cloud/planetscale

bun add https://pkg.ing/@distilled.cloud/planetscale/f29557b

@distilled.cloud/posthog

bun add https://pkg.ing/@distilled.cloud/posthog/f29557b

@distilled.cloud/prisma-postgres

bun add https://pkg.ing/@distilled.cloud/prisma-postgres/f29557b

@distilled.cloud/railway

bun add https://pkg.ing/@distilled.cloud/railway/f29557b

@distilled.cloud/stripe

bun add https://pkg.ing/@distilled.cloud/stripe/f29557b

@distilled.cloud/supabase

bun add https://pkg.ing/@distilled.cloud/supabase/f29557b

@distilled.cloud/turso

bun add https://pkg.ing/@distilled.cloud/turso/f29557b

@distilled.cloud/typesense

bun add https://pkg.ing/@distilled.cloud/typesense/f29557b

@distilled.cloud/vercel

bun add https://pkg.ing/@distilled.cloud/vercel/f29557b

@distilled.cloud/workos

bun add https://pkg.ing/@distilled.cloud/workos/f29557b

AWS patches are a typed per-service config, not RFC-6902. convert.ts
loads the spec-mirror models, drops foreign-namespace shapes, applies
patches/{sdkId}.json, and writes .generated-specs/<sdkId>.json.
generate.ts compiles those models and no longer reads the spec-mirror.
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.

1 participant