Skip to content

feat: OpenAPI extensions#47

Merged
thced merged 8 commits into
masterfrom
feat/openapi-extensions
May 12, 2026
Merged

feat: OpenAPI extensions#47
thced merged 8 commits into
masterfrom
feat/openapi-extensions

Conversation

@thced

@thced thced commented May 12, 2026

Copy link
Copy Markdown
Contributor

No description provided.

thced added 8 commits May 11, 2026 14:07
Add Map<String, Object> extensions as the final component to all 16
concrete Schema records and as an abstract method on the sealed Schema
interface. SchemaParser.extractExtensions() threads x-* keys from the
raw map through every concrete constructor; synthesized schemas with
no source map receive Map.of(). DefaultValidator's record-deconstruct
patterns gain the extra var _ binding. All existing test call sites
updated with Map.of() as the new last argument. Three new tests in
ExtensionsTest verify ObjectSchema, StringSchema, and OneOfSchema
extension exposure.
…a wrapper

When a schema map has only x-* keys (no type, no combinators, no shape
keywords), the synthesized permissive ObjectSchema previously discarded
them. Likewise, when parseMap collapsed multiple assertions into a
wrapper AllOfSchema, the wrapper carried Map.of() instead of the
top-level extensions. Both call sites now pass extractExtensions(raw).
@thced thced merged commit 1a223af into master May 12, 2026
3 checks passed
@thced thced deleted the feat/openapi-extensions branch May 12, 2026 07:34
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