fix: fix no-$ref-siblings error #1048
Merged
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.
Fixes the no-$ref-siblings error seen in this PR
Ticket: DX-1580
This is done by wrapping innerSchema
$ref's in anallOfin the case that a ref is present and has siblings.Result:
The following code:
Now results in:
{ openapi: '3.0.3', info: { title: 'Test', version: '1.0.0', }, paths: { '/foo': { get: { summary: 'A simple route with type descriptions for references', operationId: 'api.v1.test', tags: ['Test Routes'], parameters: [], responses: { '200': { description: 'OK', content: { 'application/json': { schema: { $ref: '#/components/schemas/SimpleRouteResponse', }, }, }, }, }, }, }, }, components: { schemas: { SimpleRouteResponse: { description: 'Human readable description of the Simple Route Response', properties: { test: { type: 'array', items: { + allOf: [{ $ref: '#/components/schemas/TestRefBase' }], - $ref: '#/components/schemas/TestRefBase', description: 'List of test refs', }, }, }, required: ['test'], title: 'Human Readable Simple Route Response', type: 'object', }, TestRefBase: { title: 'TestRefBase', type: 'string', }, TestRef: { allOf: [ { title: 'TestRef', }, { $ref: '#/components/schemas/TestRefBase', }, ], }, }, }, }