From 1487b24776ed73111dee48c096659a1c4c9833b1 Mon Sep 17 00:00:00 2001 From: Andriy Zaleskyy Date: Fri, 27 Aug 2021 12:22:57 +0300 Subject: [PATCH] Revert "feat: Webhooks option to reverse readOnly/writeOnly properties #1720" This reverts commit 7486e7003938dad73cdec34f9c3969221d08fb7e. --- demo/openapi.yaml | 4 +-- demo/playground/hmr-playground.tsx | 7 +---- demo/playground/index.html | 2 +- src/components/Callbacks/CallbackDetails.tsx | 17 +++-------- .../Callbacks/CallbackOperation.tsx | 17 ++--------- src/components/Callbacks/CallbacksList.tsx | 11 ++----- src/components/Operation/Operation.tsx | 22 ++++---------- src/components/Parameters/Parameters.tsx | 19 ++++-------- src/components/Responses/Response.tsx | 18 +++--------- src/components/Responses/ResponseDetails.tsx | 14 +++------ src/components/Responses/ResponsesList.tsx | 13 ++++----- src/services/RedocNormalizedOptions.ts | 9 +----- src/services/models/Field.ts | 4 +-- src/services/models/MediaContent.ts | 4 +-- src/services/models/MediaType.ts | 13 ++++----- src/services/models/Operation.ts | 26 ++--------------- src/services/models/RequestBody.ts | 4 +-- src/services/models/Response.ts | 6 ++-- src/services/models/Schema.ts | 29 +++++++------------ 19 files changed, 61 insertions(+), 178 deletions(-) diff --git a/demo/openapi.yaml b/demo/openapi.yaml index c570cc60..74c16b70 100644 --- a/demo/openapi.yaml +++ b/demo/openapi.yaml @@ -1193,7 +1193,7 @@ x-webhooks: summary: New pet description: Information about a new pet in the systems operationId: newPet - tags: + tags: - pet requestBody: content: @@ -1202,4 +1202,4 @@ x-webhooks: $ref: "#/components/schemas/Pet" responses: "200": - description: Return a 200 status to indicate that the data was received successfully + description: Return a 200 status to indicate that the data was received successfully \ No newline at end of file diff --git a/demo/playground/hmr-playground.tsx b/demo/playground/hmr-playground.tsx index f378ca23..efd843ab 100644 --- a/demo/playground/hmr-playground.tsx +++ b/demo/playground/hmr-playground.tsx @@ -11,11 +11,6 @@ const userUrl = window.location.search.match(/url=(.*)$/); const specUrl = (userUrl && userUrl[1]) || (swagger ? 'swagger.yaml' : big ? 'big-openapi.json' : 'openapi.yaml'); -const options: RedocRawOptions = { - nativeScrollbars: false, - maxDisplayedEnumValues: 3, - reverseEventsReadOnlyProps: true, - reverseEventsWriteOnlyProps: true, -}; +const options: RedocRawOptions = { nativeScrollbars: false, maxDisplayedEnumValues: 3 }; render(, document.getElementById('example')); diff --git a/demo/playground/index.html b/demo/playground/index.html index 7a3a5092..d322ee3e 100644 --- a/demo/playground/index.html +++ b/demo/playground/index.html @@ -22,4 +22,4 @@ - + \ No newline at end of file diff --git a/src/components/Callbacks/CallbackDetails.tsx b/src/components/Callbacks/CallbackDetails.tsx index 086a6234..ce003c56 100644 --- a/src/components/Callbacks/CallbackDetails.tsx +++ b/src/components/Callbacks/CallbackDetails.tsx @@ -1,7 +1,7 @@ import { observer } from 'mobx-react'; import * as React from 'react'; -import { OperationModel, ReverseEventsRWOProps } from '../../services/models'; +import { OperationModel } from '../../services/models'; import styled from '../../styled-components'; import { Endpoint } from '../Endpoint/Endpoint'; import { ExternalDocumentation } from '../ExternalDocumentation/ExternalDocumentation'; @@ -14,13 +14,12 @@ import { CallbackDetailsWrap } from './styled.elements'; export interface CallbackDetailsProps { operation: OperationModel; - reverseEventsReadWriteOnly?: ReverseEventsRWOProps; } @observer export class CallbackDetails extends React.Component { render() { - const { operation, reverseEventsReadWriteOnly } = this.props; + const { operation } = this.props; const { description, externalDocs } = operation; const hasDescription = !!(description || externalDocs); @@ -35,16 +34,8 @@ export class CallbackDetails extends React.Component { - - + + ); } diff --git a/src/components/Callbacks/CallbackOperation.tsx b/src/components/Callbacks/CallbackOperation.tsx index 4e40ee2b..f811cdb5 100644 --- a/src/components/Callbacks/CallbackOperation.tsx +++ b/src/components/Callbacks/CallbackOperation.tsx @@ -1,24 +1,18 @@ import { observer } from 'mobx-react'; import * as React from 'react'; -import { OperationModel, ReverseEventsRWOProps } from '../../services/models'; +import { OperationModel } from '../../services/models'; import { StyledCallbackTitle } from './styled.elements'; import { CallbackDetails } from './CallbackDetails'; -export interface CallbackOperationProps { - callbackOperation: OperationModel; - reverseEventsReadWriteOnly?: ReverseEventsRWOProps; -} - @observer -export class CallbackOperation extends React.Component { +export class CallbackOperation extends React.Component<{ callbackOperation: OperationModel }> { toggle = () => { this.props.callbackOperation.toggle(); }; render() { const { name, expanded, httpVerb, deprecated } = this.props.callbackOperation; - const { reverseEventsReadWriteOnly } = this.props; return ( <> @@ -29,12 +23,7 @@ export class CallbackOperation extends React.Component { httpVerb={httpVerb} deprecated={deprecated} /> - {expanded && - - } + {expanded && } ); } diff --git a/src/components/Callbacks/CallbacksList.tsx b/src/components/Callbacks/CallbacksList.tsx index 0dae2c5b..8ef40654 100644 --- a/src/components/Callbacks/CallbacksList.tsx +++ b/src/components/Callbacks/CallbacksList.tsx @@ -1,17 +1,16 @@ import * as React from 'react'; -import { CallbackModel, ReverseEventsRWOProps } from '../../services/models'; +import { CallbackModel } from '../../services/models'; import styled from '../../styled-components'; import { CallbackOperation } from './CallbackOperation'; export interface CallbacksListProps { callbacks: CallbackModel[]; - reverseEventsReadWriteOnly?: ReverseEventsRWOProps; } export class CallbacksList extends React.PureComponent { render() { - const { callbacks, reverseEventsReadWriteOnly } = this.props; + const { callbacks } = this.props; if (!callbacks || callbacks.length === 0) { return null; @@ -23,11 +22,7 @@ export class CallbacksList extends React.PureComponent { {callbacks.map(callback => { return callback.operations.map((operation, index) => { return ( - + ); }); })} diff --git a/src/components/Operation/Operation.tsx b/src/components/Operation/Operation.tsx index 00f7c83b..57776cf0 100644 --- a/src/components/Operation/Operation.tsx +++ b/src/components/Operation/Operation.tsx @@ -3,7 +3,7 @@ import * as React from 'react'; import { Badge, DarkRightPanel, H2, MiddlePanel, Row } from '../../common-elements'; import { ShareLink } from '../../common-elements/linkify'; -import { OperationModel, ReverseEventsRWOProps } from '../../services/models'; +import { OperationModel } from '../../services/models'; import styled from '../../styled-components'; import { CallbacksList } from '../Callbacks'; import { CallbackSamples } from '../CallbackSamples/CallbackSamples'; @@ -30,14 +30,14 @@ const Description = styled.div` export interface OperationProps { operation: OperationModel; - reverseEventsReadWriteOnly?: ReverseEventsRWOProps; } @observer export class Operation extends React.Component { render() { const { operation } = this.props; - const { name: summary, description, deprecated, externalDocs, isWebhook, reverseEventsReadWriteOnly = {} } = operation; + + const { name: summary, description, deprecated, externalDocs, isWebhook } = operation; const hasDescription = !!(description || externalDocs); return ( @@ -61,19 +61,9 @@ export class Operation extends React.Component { )} - - - + + + {!options.pathInMiddlePanel && !isWebhook && } diff --git a/src/components/Parameters/Parameters.tsx b/src/components/Parameters/Parameters.tsx index dfbd653d..17ab9c48 100644 --- a/src/components/Parameters/Parameters.tsx +++ b/src/components/Parameters/Parameters.tsx @@ -4,7 +4,7 @@ import { ParametersGroup } from './ParametersGroup'; import { UnderlinedHeader } from '../../common-elements'; -import { MediaContentModel, ReverseEventsRWOProps } from '../../services'; +import { MediaContentModel } from '../../services'; import { FieldModel, RequestBodyModel } from '../../services/models'; import { MediaTypesSwitch } from '../MediaTypeSwitch/MediaTypesSwitch'; import { Schema } from '../Schema'; @@ -21,7 +21,6 @@ function safePush(obj, prop, item) { export interface ParametersProps { parameters?: FieldModel[]; body?: RequestBodyModel; - reverseEventsReadWriteOnly?: ReverseEventsRWOProps; } const PARAM_PLACES = ['path', 'query', 'cookie', 'header']; @@ -36,7 +35,7 @@ export class Parameters extends React.PureComponent { } render() { - const { body, parameters = [], reverseEventsReadWriteOnly } = this.props; + const { body, parameters = [] } = this.props; if (body === undefined && parameters === undefined) { return null; } @@ -54,13 +53,7 @@ export class Parameters extends React.PureComponent { {paramsPlaces.map(place => ( ))} - {bodyContent && - - } + {bodyContent && } ); } @@ -74,17 +67,15 @@ function DropdownWithinHeader(props) { ); } -export function BodyContent(props: { content: MediaContentModel; description?: string, reverseEventsReadWriteOnly?: ReverseEventsRWOProps }): JSX.Element { +export function BodyContent(props: { content: MediaContentModel; description?: string }): JSX.Element { const { content, description } = props; - const { reverseEventsReadOnlyProps, reverseEventsWriteOnlyProps } = props.reverseEventsReadWriteOnly || {}; - const skipReadOnly = !reverseEventsReadOnlyProps; return ( {({ schema }) => { return ( <> {description !== undefined && } - + ); }} diff --git a/src/components/Responses/Response.tsx b/src/components/Responses/Response.tsx index 0691c67a..58e0ae32 100644 --- a/src/components/Responses/Response.tsx +++ b/src/components/Responses/Response.tsx @@ -1,25 +1,18 @@ import { observer } from 'mobx-react'; import * as React from 'react'; -import { ResponseModel, ReverseEventsRWOProps } from '../../services/models'; +import { ResponseModel } from '../../services/models'; import { ResponseDetails } from './ResponseDetails'; import { ResponseDetailsWrap, StyledResponseTitle } from './styled.elements'; -export interface ResponseViewProps { - response: ResponseModel; - reverseEventsReadWriteOnly?: ReverseEventsRWOProps; -} - @observer -export class ResponseView extends React.Component { +export class ResponseView extends React.Component<{ response: ResponseModel }> { toggle = () => { this.props.response.toggle(); }; render() { - const { - reverseEventsReadWriteOnly, response: { headers, type, summary, description, code, expanded, content } - } = this.props; + const { headers, type, summary, description, code, expanded, content } = this.props.response; const mimes = content === undefined ? [] : content.mediaTypes.filter(mime => mime.schema !== undefined); @@ -37,10 +30,7 @@ export class ResponseView extends React.Component { /> {expanded && !empty && ( - + )} diff --git a/src/components/Responses/ResponseDetails.tsx b/src/components/Responses/ResponseDetails.tsx index 1b7712dd..821fc2da 100644 --- a/src/components/Responses/ResponseDetails.tsx +++ b/src/components/Responses/ResponseDetails.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; -import { ResponseModel, ReverseEventsRWOProps } from '../../services/models'; +import { ResponseModel } from '../../services/models'; import { UnderlinedHeader } from '../../common-elements'; import { DropdownOrLabel } from '../DropdownOrLabel/DropdownOrLabel'; @@ -10,22 +10,16 @@ import { Schema } from '../Schema'; import { Markdown } from '../Markdown/Markdown'; import { ResponseHeaders } from './ResponseHeaders'; -export interface ResponseDetailsProps { - response: ResponseModel; - reverseEventsReadWriteOnly?: ReverseEventsRWOProps; -} - -export class ResponseDetails extends React.PureComponent { +export class ResponseDetails extends React.PureComponent<{ response: ResponseModel }> { render() { - const { reverseEventsReadWriteOnly = {}, response: { description, headers, content } } = this.props; - const skipWriteOnly = !reverseEventsReadWriteOnly.reverseEventsWriteOnlyProps; + const { description, headers, content } = this.props.response; return ( <> {description && } {({ schema }) => { - return ; + return ; }} diff --git a/src/components/Responses/ResponsesList.tsx b/src/components/Responses/ResponsesList.tsx index f7c4b362..e578a1cf 100644 --- a/src/components/Responses/ResponsesList.tsx +++ b/src/components/Responses/ResponsesList.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import { l } from '../../services/Labels'; -import { ResponseModel, ReverseEventsRWOProps } from '../../services/models'; +import { ResponseModel } from '../../services/models'; import styled from '../../styled-components'; import { ResponseView } from './Response'; @@ -15,12 +15,11 @@ const ResponsesHeader = styled.h3` export interface ResponseListProps { responses: ResponseModel[]; isCallback?: boolean; - reverseEventsReadWriteOnly?: ReverseEventsRWOProps; } export class ResponsesList extends React.PureComponent { render() { - const { responses, isCallback, reverseEventsReadWriteOnly } = this.props; + const { responses, isCallback } = this.props; if (!responses || responses.length === 0) { return null; @@ -29,11 +28,9 @@ export class ResponsesList extends React.PureComponent { return (
{isCallback ? l('callbackResponses') : l('responses')} - {responses.map(response => )} + {responses.map(response => { + return ; + })}
); } diff --git a/src/services/RedocNormalizedOptions.ts b/src/services/RedocNormalizedOptions.ts index 83dc2baa..e310a9ad 100644 --- a/src/services/RedocNormalizedOptions.ts +++ b/src/services/RedocNormalizedOptions.ts @@ -42,8 +42,6 @@ export interface RedocRawOptions { maxDisplayedEnumValues?: number; ignoreNamedSchemas?: string[] | string; hideSchemaPattern?: boolean; - reverseEventsReadOnlyProps?: boolean; - reverseEventsWriteOnlyProps?: boolean; } export function argValueToBoolean(val?: string | boolean, defaultValue?: boolean): boolean { @@ -51,7 +49,7 @@ export function argValueToBoolean(val?: string | boolean, defaultValue?: boolean return defaultValue || false; } if (typeof val === 'string') { - return val !== 'false'; + return val === 'false' ? false : true; } return val; } @@ -199,9 +197,6 @@ export class RedocNormalizedOptions { ignoreNamedSchemas: Set; hideSchemaPattern: boolean; - reverseEventsReadOnlyProps: boolean; - reverseEventsWriteOnlyProps: boolean; - constructor(raw: RedocRawOptions, defaults: RedocRawOptions = {}) { raw = { ...defaults, ...raw }; const hook = raw.theme && raw.theme.extensionsHook; @@ -262,7 +257,5 @@ export class RedocNormalizedOptions { : raw.ignoreNamedSchemas?.split(',').map((s) => s.trim()); this.ignoreNamedSchemas = new Set(ignoreNamedSchemas); this.hideSchemaPattern = argValueToBoolean(raw.hideSchemaPattern); - this.reverseEventsReadOnlyProps = argValueToBoolean(raw.reverseEventsReadOnlyProps); - this.reverseEventsWriteOnlyProps = argValueToBoolean(raw.reverseEventsWriteOnlyProps); } } diff --git a/src/services/models/Field.ts b/src/services/models/Field.ts index 6626f6ed..ef031ab8 100644 --- a/src/services/models/Field.ts +++ b/src/services/models/Field.ts @@ -13,7 +13,6 @@ import { OpenAPIParser } from '../OpenAPIParser'; import { SchemaModel } from './Schema'; import { ExampleModel } from './Example'; import { mapValues } from '../../utils/helpers'; -import { ReverseEventsRWOProps } from './Operation'; const DEFAULT_SERIALIZATION: Record< OpenAPIParameterLocation, @@ -65,7 +64,6 @@ export class FieldModel { infoOrRef: Referenced & { name?: string; kind?: string }, pointer: string, options: RedocNormalizedOptions, - reverseEventsReadWriteOnly?: ReverseEventsRWOProps, ) { makeObservable(this); @@ -82,7 +80,7 @@ export class FieldModel { fieldSchema = info.content[serializationMime] && info.content[serializationMime].schema; } - this.schema = new SchemaModel(parser, fieldSchema || {}, pointer, options, false, reverseEventsReadWriteOnly); + this.schema = new SchemaModel(parser, fieldSchema || {}, pointer, options); this.description = info.description === undefined ? this.schema.description || '' : info.description; this.example = info.example || this.schema.example; diff --git a/src/services/models/MediaContent.ts b/src/services/models/MediaContent.ts index a6dfa1fc..e993da91 100644 --- a/src/services/models/MediaContent.ts +++ b/src/services/models/MediaContent.ts @@ -6,7 +6,6 @@ import { MediaTypeModel } from './MediaType'; import { mergeSimilarMediaTypes } from '../../utils'; import { OpenAPIParser } from '../OpenAPIParser'; import { RedocNormalizedOptions } from '../RedocNormalizedOptions'; -import { ReverseEventsRWOProps } from './Operation'; /** * MediaContent model ready to be sued by React components @@ -26,7 +25,6 @@ export class MediaContentModel { info: Record, public isRequestType: boolean, options: RedocNormalizedOptions, - reverseEventsReadWriteOnly?: ReverseEventsRWOProps, ) { makeObservable(this); @@ -37,7 +35,7 @@ export class MediaContentModel { const mime = info[name]; // reset deref cache just in case something is left there parser.resetVisited(); - return new MediaTypeModel(parser, name, isRequestType, mime, options, reverseEventsReadWriteOnly); + return new MediaTypeModel(parser, name, isRequestType, mime, options); }); } diff --git a/src/services/models/MediaType.ts b/src/services/models/MediaType.ts index 096de631..9283fbae 100644 --- a/src/services/models/MediaType.ts +++ b/src/services/models/MediaType.ts @@ -7,7 +7,6 @@ import { SchemaModel } from './Schema'; import { isJsonLike, mapValues } from '../../utils'; import { OpenAPIParser } from '../OpenAPIParser'; import { ExampleModel } from './Example'; -import { ReverseEventsRWOProps } from './Operation'; export class MediaTypeModel { examples?: { [name: string]: ExampleModel }; @@ -25,11 +24,10 @@ export class MediaTypeModel { isRequestType: boolean, info: OpenAPIMediaType, options: RedocNormalizedOptions, - reverseEventsReadWriteOnly: ReverseEventsRWOProps = {}, ) { this.name = name; this.isRequestType = isRequestType; - this.schema = info.schema && new SchemaModel(parser, info.schema, '', options, false, reverseEventsReadWriteOnly); + this.schema = info.schema && new SchemaModel(parser, info.schema, '', options); this.onlyRequiredInSamples = options.onlyRequiredInSamples; if (info.examples !== undefined) { this.examples = mapValues( @@ -46,16 +44,15 @@ export class MediaTypeModel { ), }; } else if (isJsonLike(name)) { - this.generateExample(parser, info, reverseEventsReadWriteOnly); + this.generateExample(parser, info); } } - generateExample(parser: OpenAPIParser, info: OpenAPIMediaType, reverseEventsReadWriteOnly: ReverseEventsRWOProps) { - const { reverseEventsReadOnlyProps, reverseEventsWriteOnlyProps } = reverseEventsReadWriteOnly; + generateExample(parser: OpenAPIParser, info: OpenAPIMediaType) { const samplerOptions = { - skipReadOnly: reverseEventsReadOnlyProps ? !this.isRequestType : this.isRequestType, - skipWriteOnly: reverseEventsWriteOnlyProps ? this.isRequestType : !this.isRequestType, + skipReadOnly: this.isRequestType, skipNonRequired: this.isRequestType && this.onlyRequiredInSamples, + skipWriteOnly: !this.isRequestType, maxSampleDepth: 10, }; if (this.schema && this.schema.oneOf) { diff --git a/src/services/models/Operation.ts b/src/services/models/Operation.ts index 5ae29a7a..d00461a1 100644 --- a/src/services/models/Operation.ts +++ b/src/services/models/Operation.ts @@ -33,11 +33,6 @@ export interface XPayloadSample { source: string; } -export interface ReverseEventsRWOProps { - reverseEventsReadOnlyProps?: boolean; - reverseEventsWriteOnlyProps?: boolean; -} - export function isPayloadSample( sample: XPayloadSample | OpenAPIXCodeSample, ): sample is XPayloadSample { @@ -81,7 +76,6 @@ export class OperationModel implements IMenuItem { extensions: Record; isCallback: boolean; isWebhook: boolean; - reverseEventsReadWriteOnly?: ReverseEventsRWOProps; constructor( private parser: OpenAPIParser, @@ -106,11 +100,6 @@ export class OperationModel implements IMenuItem { this.isCallback = isCallback; this.isWebhook = !!operationSpec.isWebhook; - this.reverseEventsReadWriteOnly = (this.isCallback || this.isWebhook) ? { - reverseEventsReadOnlyProps: this.options.reverseEventsReadOnlyProps, - reverseEventsWriteOnlyProps: this.options.reverseEventsWriteOnlyProps, - } : {}; - this.name = getOperationSummary(operationSpec); if (this.isCallback) { @@ -183,11 +172,7 @@ export class OperationModel implements IMenuItem { get requestBody() { return ( this.operationSpec.requestBody && - new RequestBodyModel(this.parser, - this.operationSpec.requestBody, - this.options, - this.reverseEventsReadWriteOnly, - ) + new RequestBodyModel(this.parser, this.operationSpec.requestBody, this.options) ); } @@ -227,13 +212,7 @@ export class OperationModel implements IMenuItem { this.operationSpec.pathParameters, this.operationSpec.parameters, // TODO: fix pointer - ).map((paramOrRef) => new FieldModel( - this.parser, - paramOrRef, - this.pointer, - this.options, - this.reverseEventsReadWriteOnly, - )); + ).map((paramOrRef) => new FieldModel(this.parser, paramOrRef, this.pointer, this.options)); if (this.options.sortPropsAlphabetically) { return sortByField(_parameters, 'name'); @@ -267,7 +246,6 @@ export class OperationModel implements IMenuItem { hasSuccessResponses, this.operationSpec.responses[code], this.options, - this.reverseEventsReadWriteOnly, ); }); } diff --git a/src/services/models/RequestBody.ts b/src/services/models/RequestBody.ts index 4295eee4..f3b45959 100644 --- a/src/services/models/RequestBody.ts +++ b/src/services/models/RequestBody.ts @@ -3,7 +3,6 @@ import { OpenAPIRequestBody, Referenced } from '../../types'; import { OpenAPIParser } from '../OpenAPIParser'; import { RedocNormalizedOptions } from '../RedocNormalizedOptions'; import { MediaContentModel } from './MediaContent'; -import { ReverseEventsRWOProps } from './Operation'; export class RequestBodyModel { description: string; @@ -14,14 +13,13 @@ export class RequestBodyModel { parser: OpenAPIParser, infoOrRef: Referenced, options: RedocNormalizedOptions, - reverseEventsReadWriteOnly?: ReverseEventsRWOProps, ) { const info = parser.deref(infoOrRef); this.description = info.description || ''; this.required = !!info.required; parser.exitRef(infoOrRef); if (info.content !== undefined) { - this.content = new MediaContentModel(parser, info.content, true, options, reverseEventsReadWriteOnly); + this.content = new MediaContentModel(parser, info.content, true, options); } } } diff --git a/src/services/models/Response.ts b/src/services/models/Response.ts index 7504d8b1..f50ee0f1 100644 --- a/src/services/models/Response.ts +++ b/src/services/models/Response.ts @@ -7,7 +7,6 @@ import { OpenAPIParser } from '../OpenAPIParser'; import { RedocNormalizedOptions } from '../RedocNormalizedOptions'; import { FieldModel } from './Field'; import { MediaContentModel } from './MediaContent'; -import { ReverseEventsRWOProps } from './Operation'; export class ResponseModel { @observable @@ -26,7 +25,6 @@ export class ResponseModel { defaultAsError: boolean, infoOrRef: Referenced, options: RedocNormalizedOptions, - reverseEventsReadWriteOnly?: ReverseEventsRWOProps, ) { makeObservable(this); @@ -36,7 +34,7 @@ export class ResponseModel { parser.exitRef(infoOrRef); this.code = code; if (info.content !== undefined) { - this.content = new MediaContentModel(parser, info.content, false, options, reverseEventsReadWriteOnly); + this.content = new MediaContentModel(parser, info.content, false, options); } if (info['x-summary'] !== undefined) { @@ -53,7 +51,7 @@ export class ResponseModel { if (headers !== undefined) { this.headers = Object.keys(headers).map(name => { const header = headers[name]; - return new FieldModel(parser, { ...header, name }, '', options, reverseEventsReadWriteOnly); + return new FieldModel(parser, { ...header, name }, '', options); }); } } diff --git a/src/services/models/Schema.ts b/src/services/models/Schema.ts index 6f0f59ca..d79d738b 100644 --- a/src/services/models/Schema.ts +++ b/src/services/models/Schema.ts @@ -6,7 +6,7 @@ import { OpenAPIParser } from '../OpenAPIParser'; import { RedocNormalizedOptions } from '../RedocNormalizedOptions'; import { FieldModel } from './Field'; -import { MergedOpenAPISchema, ReverseEventsRWOProps } from '../'; +import { MergedOpenAPISchema } from '../'; import { detectType, extractExtensions, @@ -74,7 +74,6 @@ export class SchemaModel { pointer: string, private options: RedocNormalizedOptions, isChild: boolean = false, - reverseEventsReadWriteOnly: ReverseEventsRWOProps = {}, ) { makeObservable(this); @@ -82,7 +81,7 @@ export class SchemaModel { this.rawSchema = parser.deref(schemaOrRef, false, true); this.schema = parser.mergeAllOf(this.rawSchema, this.pointer, isChild); - this.init(parser, isChild, reverseEventsReadWriteOnly); + this.init(parser, isChild); parser.exitRef(schemaOrRef); parser.exitParents(this.schema); @@ -105,7 +104,7 @@ export class SchemaModel { return this.type === type || (Array.isArray(this.type) && this.type.includes(type)); } - init(parser: OpenAPIParser, isChild: boolean, reverseEventsReadWriteOnly: ReverseEventsRWOProps) { + init(parser: OpenAPIParser, isChild: boolean) { const schema = this.schema; this.isCircular = schema['x-circular-ref']; @@ -147,7 +146,7 @@ export class SchemaModel { } if (!isChild && getDiscriminator(schema) !== undefined) { - this.initDiscriminator(schema, parser, reverseEventsReadWriteOnly); + this.initDiscriminator(schema, parser); return; } else if ( isChild && @@ -159,7 +158,7 @@ export class SchemaModel { } if (schema.oneOf !== undefined) { - this.initOneOf(schema.oneOf, parser, reverseEventsReadWriteOnly); + this.initOneOf(schema.oneOf, parser); this.oneOfType = 'One of'; if (schema.anyOf !== undefined) { console.warn( @@ -170,17 +169,15 @@ export class SchemaModel { } if (schema.anyOf !== undefined) { - this.initOneOf(schema.anyOf, parser, reverseEventsReadWriteOnly); + this.initOneOf(schema.anyOf, parser); this.oneOfType = 'Any of'; return; } if (this.hasType('object')) { - this.fields = buildFields(parser, schema, this.pointer, this.options, reverseEventsReadWriteOnly); + this.fields = buildFields(parser, schema, this.pointer, this.options); } else if (this.hasType('array') && schema.items) { - this.items = new SchemaModel( - parser, schema.items, this.pointer + '/items', this.options, false, reverseEventsReadWriteOnly - ); + this.items = new SchemaModel(parser, schema.items, this.pointer + '/items', this.options); this.displayType = pluralizeType(this.items.displayType); this.displayFormat = this.items.format; this.typePrefix = this.items.typePrefix + l('arrayOf'); @@ -204,7 +201,7 @@ export class SchemaModel { } } - private initOneOf(oneOf: OpenAPISchema[], parser: OpenAPIParser, reverseEventsReadWriteOnly: ReverseEventsRWOProps) { + private initOneOf(oneOf: OpenAPISchema[], parser: OpenAPIParser) { this.oneOf = oneOf!.map((variant, idx) => { const derefVariant = parser.deref(variant, false, true); @@ -227,8 +224,6 @@ export class SchemaModel { } as OpenAPISchema, this.pointer + '/oneOf/' + idx, this.options, - false, - reverseEventsReadWriteOnly, ); parser.exitRef(variant); @@ -262,7 +257,6 @@ export class SchemaModel { parentRefs?: string[]; }, parser: OpenAPIParser, - reverseEventsReadWriteOnly, ) { const discriminator = getDiscriminator(schema)!; this.discriminatorProp = discriminator.propertyName; @@ -350,7 +344,7 @@ export class SchemaModel { } this.oneOf = refs.map(({ $ref, name }) => { - const innerSchema = new SchemaModel(parser, parser.byRef($ref)!, $ref, this.options, true, reverseEventsReadWriteOnly); + const innerSchema = new SchemaModel(parser, parser.byRef($ref)!, $ref, this.options, true); innerSchema.title = name; return innerSchema; }); @@ -362,7 +356,6 @@ function buildFields( schema: OpenAPISchema, $ref: string, options: RedocNormalizedOptions, - reverseEventsReadWriteOnly: ReverseEventsRWOProps, ): FieldModel[] { const props = schema.properties || {}; const additionalProps = schema.additionalProperties; @@ -392,7 +385,6 @@ function buildFields( }, $ref + '/properties/' + fieldName, options, - reverseEventsReadWriteOnly, ); }); @@ -419,7 +411,6 @@ function buildFields( }, $ref + '/additionalProperties', options, - reverseEventsReadWriteOnly, ), ); }