@gitbook/react-openapi 1.0.4 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +22 -0
- package/dist/InteractiveSection.jsx +10 -9
- package/dist/OpenAPICodeSample.jsx +3 -3
- package/dist/OpenAPIDisclosure.d.ts +5 -9
- package/dist/OpenAPIDisclosure.jsx +25 -27
- package/dist/OpenAPIDisclosureGroup.d.ts +2 -2
- package/dist/OpenAPIDisclosureGroup.jsx +6 -5
- package/dist/OpenAPIPath.jsx +5 -1
- package/dist/OpenAPIResponseExample.jsx +8 -8
- package/dist/OpenAPIResponses.jsx +3 -3
- package/dist/OpenAPISchema.d.ts +3 -26
- package/dist/OpenAPISchema.jsx +80 -131
- package/dist/OpenAPISpec.jsx +3 -4
- package/dist/OpenAPITabs.jsx +51 -47
- package/dist/ScalarApiButton.d.ts +3 -2
- package/dist/ScalarApiButton.jsx +22 -18
- package/dist/StaticSection.d.ts +10 -0
- package/dist/StaticSection.jsx +23 -0
- package/dist/dereference.d.ts +5 -0
- package/dist/dereference.js +68 -0
- package/dist/index.d.ts +3 -2
- package/dist/index.js +2 -1
- package/dist/models/OpenAPIModels.d.ts +9 -0
- package/dist/models/OpenAPIModels.jsx +62 -0
- package/dist/models/index.d.ts +2 -0
- package/dist/models/index.js +2 -0
- package/dist/models/resolveOpenAPIModels.d.ts +7 -0
- package/dist/models/resolveOpenAPIModels.js +73 -0
- package/dist/resolveOpenAPIOperation.d.ts +2 -2
- package/dist/resolveOpenAPIOperation.js +3 -34
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/types.d.ts +8 -0
- package/dist/useSyncedTabsGlobalState.d.ts +10 -1
- package/dist/useSyncedTabsGlobalState.js +19 -15
- package/dist/utils.js +42 -3
- package/package.json +3 -3
- package/src/InteractiveSection.tsx +10 -18
- package/src/OpenAPICodeSample.tsx +3 -3
- package/src/OpenAPIDisclosure.tsx +35 -42
- package/src/OpenAPIDisclosureGroup.tsx +13 -11
- package/src/OpenAPIPath.tsx +7 -1
- package/src/OpenAPIResponseExample.tsx +8 -15
- package/src/OpenAPIResponses.tsx +3 -3
- package/src/OpenAPISchema.test.ts +26 -35
- package/src/OpenAPISchema.tsx +138 -227
- package/src/OpenAPISpec.tsx +3 -5
- package/src/OpenAPITabs.tsx +52 -63
- package/src/ScalarApiButton.tsx +26 -28
- package/src/StaticSection.tsx +59 -0
- package/src/dereference.ts +29 -0
- package/src/index.ts +3 -2
- package/src/models/OpenAPIModels.tsx +89 -0
- package/src/models/index.ts +2 -0
- package/src/models/resolveOpenAPIModels.ts +35 -0
- package/src/resolveOpenAPIOperation.ts +8 -36
- package/src/types.ts +10 -0
- package/src/useSyncedTabsGlobalState.ts +33 -21
- package/src/utils.ts +51 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,27 @@
|
|
|
1
1
|
# @gitbook/react-openapi
|
|
2
2
|
|
|
3
|
+
## 1.1.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- bb3ca9c: Implement OpenAPI models blocks
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- 0278a14: Upgrade Scalar dependencies
|
|
12
|
+
- 3173d8e: Remove top level circular refs in alternatives
|
|
13
|
+
- Updated dependencies [0278a14]
|
|
14
|
+
- Updated dependencies [bb3ca9c]
|
|
15
|
+
- Updated dependencies [052e07a]
|
|
16
|
+
- @gitbook/openapi-parser@2.1.0
|
|
17
|
+
|
|
18
|
+
## 1.0.5
|
|
19
|
+
|
|
20
|
+
### Patch Changes
|
|
21
|
+
|
|
22
|
+
- Updated dependencies [53f5dbe]
|
|
23
|
+
- @gitbook/openapi-parser@2.0.2
|
|
24
|
+
|
|
3
25
|
## 1.0.4
|
|
4
26
|
|
|
5
27
|
### Patch Changes
|
|
@@ -3,6 +3,7 @@ import clsx from 'clsx';
|
|
|
3
3
|
import { useRef, useState } from 'react';
|
|
4
4
|
import { mergeProps, useButton, useDisclosure, useFocusRing } from 'react-aria';
|
|
5
5
|
import { useDisclosureState } from 'react-stately';
|
|
6
|
+
import { Section, SectionBody, SectionHeader, SectionHeaderContent } from './StaticSection';
|
|
6
7
|
/**
|
|
7
8
|
* To optimize rendering, most of the components are server-components,
|
|
8
9
|
* and the interactiveness is mainly handled by a few key components like this one.
|
|
@@ -20,13 +21,13 @@ export function InteractiveSection(props) {
|
|
|
20
21
|
var _k = useDisclosure({}, state, panelRef), triggerProps = _k.buttonProps, panelProps = _k.panelProps;
|
|
21
22
|
var buttonProps = useButton(triggerProps, triggerRef).buttonProps;
|
|
22
23
|
var _l = useFocusRing(), isFocusVisible = _l.isFocusVisible, focusProps = _l.focusProps;
|
|
23
|
-
return (<
|
|
24
|
-
{header ? (<
|
|
24
|
+
return (<Section id={id} className={clsx('openapi-section', toggeable ? 'openapi-section-toggeable' : null, className, toggeable ? "".concat(className, "-").concat(state.isExpanded ? 'opened' : 'closed') : null)}>
|
|
25
|
+
{header ? (<SectionHeader onClick={function () {
|
|
25
26
|
if (toggeable) {
|
|
26
27
|
state.toggle();
|
|
27
28
|
}
|
|
28
|
-
}} className={
|
|
29
|
-
<
|
|
29
|
+
}} className={className}>
|
|
30
|
+
<SectionHeaderContent className={className}>
|
|
30
31
|
{(children || (selectedTab === null || selectedTab === void 0 ? void 0 : selectedTab.body)) && toggeable ? (<button {...mergeProps(buttonProps, focusProps)} ref={triggerRef} className={clsx('openapi-section-toggle', "".concat(className, "-toggle"))} style={{
|
|
31
32
|
outline: isFocusVisible
|
|
32
33
|
? '2px solid rgb(var(--primary-color-500) / 0.4)'
|
|
@@ -35,7 +36,7 @@ export function InteractiveSection(props) {
|
|
|
35
36
|
{toggleIcon}
|
|
36
37
|
</button>) : null}
|
|
37
38
|
{header}
|
|
38
|
-
</
|
|
39
|
+
</SectionHeaderContent>
|
|
39
40
|
<div className={clsx('openapi-section-header-controls', "".concat(className, "-header-controls"))} onClick={function (event) {
|
|
40
41
|
event.stopPropagation();
|
|
41
42
|
}}>
|
|
@@ -48,13 +49,13 @@ export function InteractiveSection(props) {
|
|
|
48
49
|
</option>); })}
|
|
49
50
|
</select>) : null}
|
|
50
51
|
</div>
|
|
51
|
-
</
|
|
52
|
-
{(!toggeable || state.isExpanded) && (children || (selectedTab === null || selectedTab === void 0 ? void 0 : selectedTab.body)) ? (<
|
|
52
|
+
</SectionHeader>) : null}
|
|
53
|
+
{(!toggeable || state.isExpanded) && (children || (selectedTab === null || selectedTab === void 0 ? void 0 : selectedTab.body)) ? (<SectionBody ref={panelRef} {...panelProps} className={className}>
|
|
53
54
|
{children}
|
|
54
55
|
{selectedTab === null || selectedTab === void 0 ? void 0 : selectedTab.body}
|
|
55
|
-
</
|
|
56
|
+
</SectionBody>) : null}
|
|
56
57
|
{overlay ? (<div className={clsx('openapi-section-overlay', "".concat(className, "-overlay"))}>
|
|
57
58
|
{overlay}
|
|
58
59
|
</div>) : null}
|
|
59
|
-
</
|
|
60
|
+
</Section>);
|
|
60
61
|
}
|
|
@@ -9,8 +9,8 @@ var __assign = (this && this.__assign) || function () {
|
|
|
9
9
|
};
|
|
10
10
|
return __assign.apply(this, arguments);
|
|
11
11
|
};
|
|
12
|
-
import { InteractiveSection } from './InteractiveSection';
|
|
13
12
|
import { OpenAPITabs, OpenAPITabsList, OpenAPITabsPanels } from './OpenAPITabs';
|
|
13
|
+
import { StaticSection } from './StaticSection';
|
|
14
14
|
import { codeSampleGenerators } from './code-samples';
|
|
15
15
|
import { generateMediaTypeExample, generateSchemaExample } from './generateSchemaExample';
|
|
16
16
|
import { stringifyOpenAPI } from './stringifyOpenAPI';
|
|
@@ -99,9 +99,9 @@ export function OpenAPICodeSample(props) {
|
|
|
99
99
|
return null;
|
|
100
100
|
}
|
|
101
101
|
return (<OpenAPITabs stateKey={createStateKey('codesample')} items={samples}>
|
|
102
|
-
<
|
|
102
|
+
<StaticSection header={<OpenAPITabsList />} className="openapi-codesample">
|
|
103
103
|
<OpenAPITabsPanels />
|
|
104
|
-
</
|
|
104
|
+
</StaticSection>
|
|
105
105
|
</OpenAPITabs>);
|
|
106
106
|
}
|
|
107
107
|
function getSecurityHeaders(securities) {
|
|
@@ -1,13 +1,9 @@
|
|
|
1
|
-
import type React from 'react';
|
|
2
1
|
import type { OpenAPIClientContext } from './types';
|
|
3
|
-
interface Props {
|
|
4
|
-
context: OpenAPIClientContext;
|
|
5
|
-
children: React.ReactNode;
|
|
6
|
-
label?: string;
|
|
7
|
-
}
|
|
8
2
|
/**
|
|
9
3
|
* Display an interactive OpenAPI disclosure.
|
|
10
|
-
* The label is optional and defaults to "child attributes".
|
|
11
4
|
*/
|
|
12
|
-
export declare function OpenAPIDisclosure(
|
|
13
|
-
|
|
5
|
+
export declare function OpenAPIDisclosure(props: {
|
|
6
|
+
context: OpenAPIClientContext;
|
|
7
|
+
children: React.ReactNode;
|
|
8
|
+
label: string;
|
|
9
|
+
}): React.JSX.Element;
|
|
@@ -1,32 +1,30 @@
|
|
|
1
|
-
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
'use client';
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
import { Button, Disclosure, DisclosurePanel, Heading } from 'react-aria-components';
|
|
4
4
|
/**
|
|
5
5
|
* Display an interactive OpenAPI disclosure.
|
|
6
|
-
* The label is optional and defaults to "child attributes".
|
|
7
6
|
*/
|
|
8
|
-
export function OpenAPIDisclosure(
|
|
9
|
-
var context =
|
|
10
|
-
var
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
: 'none',
|
|
7
|
+
export function OpenAPIDisclosure(props) {
|
|
8
|
+
var context = props.context, children = props.children, label = props.label;
|
|
9
|
+
var _a = useState(false), isExpanded = _a[0], setIsExpanded = _a[1];
|
|
10
|
+
return (<Disclosure className="openapi-disclosure" isExpanded={isExpanded} onExpandedChange={setIsExpanded}>
|
|
11
|
+
<Heading>
|
|
12
|
+
<Button slot="trigger" className="openapi-disclosure-trigger" style={function (_a) {
|
|
13
|
+
var isFocusVisible = _a.isFocusVisible;
|
|
14
|
+
return ({
|
|
15
|
+
outline: isFocusVisible
|
|
16
|
+
? '2px solid rgb(var(--primary-color-500) / 0.4)'
|
|
17
|
+
: 'none',
|
|
18
|
+
});
|
|
21
19
|
}}>
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
</
|
|
20
|
+
{context.icons.plus}
|
|
21
|
+
<span>
|
|
22
|
+
{isExpanded ? 'Hide' : 'Show'} {label}
|
|
23
|
+
</span>
|
|
24
|
+
</Button>
|
|
25
|
+
</Heading>
|
|
26
|
+
<DisclosurePanel className="openapi-disclosure-panel">
|
|
27
|
+
{isExpanded ? children : null}
|
|
28
|
+
</DisclosurePanel>
|
|
29
|
+
</Disclosure>);
|
|
32
30
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type DisclosureGroupProps } from 'react-stately';
|
|
1
2
|
interface Props {
|
|
2
3
|
groups: TDisclosureGroup[];
|
|
3
4
|
icon?: React.ReactNode;
|
|
@@ -7,11 +8,10 @@ type TDisclosureGroup = {
|
|
|
7
8
|
label: string | React.ReactNode;
|
|
8
9
|
tabs?: {
|
|
9
10
|
id: string;
|
|
10
|
-
label
|
|
11
|
+
label?: string | React.ReactNode;
|
|
11
12
|
body?: React.ReactNode;
|
|
12
13
|
}[];
|
|
13
14
|
};
|
|
14
|
-
import { type DisclosureGroupProps } from 'react-stately';
|
|
15
15
|
/**
|
|
16
16
|
* Display an interactive OpenAPI disclosure group.
|
|
17
17
|
*/
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
'use client';
|
|
1
2
|
var __assign = (this && this.__assign) || function () {
|
|
2
3
|
__assign = Object.assign || function(t) {
|
|
3
4
|
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
@@ -24,7 +25,7 @@ export function OpenAPIDisclosureGroup(props) {
|
|
|
24
25
|
</DisclosureGroupStateContext.Provider>);
|
|
25
26
|
}
|
|
26
27
|
function DisclosureItem(props) {
|
|
27
|
-
var _a, _b, _c, _d, _e;
|
|
28
|
+
var _a, _b, _c, _d, _e, _f;
|
|
28
29
|
var icon = props.icon, group = props.group;
|
|
29
30
|
var defaultId = useId();
|
|
30
31
|
var id = group.id || defaultId;
|
|
@@ -41,11 +42,11 @@ function DisclosureItem(props) {
|
|
|
41
42
|
var panelRef = useRef(null);
|
|
42
43
|
var triggerRef = useRef(null);
|
|
43
44
|
var isDisabled = (groupState === null || groupState === void 0 ? void 0 : groupState.isDisabled) || !((_a = group.tabs) === null || _a === void 0 ? void 0 : _a.length) || false;
|
|
44
|
-
var
|
|
45
|
+
var _g = useDisclosure(__assign(__assign({}, props), { isExpanded: isExpanded, isDisabled: isDisabled }), state, panelRef), triggerProps = _g.buttonProps, panelProps = _g.panelProps;
|
|
45
46
|
var buttonProps = useButton(triggerProps, triggerRef).buttonProps;
|
|
46
|
-
var
|
|
47
|
+
var _h = useFocusRing(), isFocusVisible = _h.isFocusVisible, focusProps = _h.focusProps;
|
|
47
48
|
var defaultTab = ((_c = (_b = group.tabs) === null || _b === void 0 ? void 0 : _b[0]) === null || _c === void 0 ? void 0 : _c.id) || '';
|
|
48
|
-
var
|
|
49
|
+
var _j = useState(defaultTab), selectedTabKey = _j[0], setSelectedTabKey = _j[1];
|
|
49
50
|
var selectedTab = (_d = group.tabs) === null || _d === void 0 ? void 0 : _d.find(function (tab) { return tab.id === selectedTabKey; });
|
|
50
51
|
return (<div className="openapi-disclosure-group" aria-expanded={state.isExpanded}>
|
|
51
52
|
<div className="openapi-disclosure-group-header">
|
|
@@ -70,7 +71,7 @@ function DisclosureItem(props) {
|
|
|
70
71
|
{group.tabs.map(function (tab) { return (<option key={tab.id} value={tab.id}>
|
|
71
72
|
{tab.label}
|
|
72
73
|
</option>); })}
|
|
73
|
-
</select>) : group.tabs[0] ? (<span>{group.tabs[0].label}</span>) : null}
|
|
74
|
+
</select>) : ((_f = group.tabs[0]) === null || _f === void 0 ? void 0 : _f.label) ? (<span>{group.tabs[0].label}</span>) : null}
|
|
74
75
|
</div>) : null}
|
|
75
76
|
</div>
|
|
76
77
|
|
package/dist/OpenAPIPath.jsx
CHANGED
|
@@ -6,14 +6,18 @@ export function OpenAPIPath(props) {
|
|
|
6
6
|
var data = props.data, context = props.context;
|
|
7
7
|
var method = data.method, path = data.path;
|
|
8
8
|
var specUrl = context.specUrl;
|
|
9
|
+
var hideTryItPanel = data['x-hideTryItPanel'] || data.operation['x-hideTryItPanel'];
|
|
9
10
|
return (<div className="openapi-path">
|
|
10
11
|
<div className={"openapi-method openapi-method-".concat(method)}>{method}</div>
|
|
11
12
|
<div className="openapi-path-title" data-deprecated={data.operation.deprecated}>
|
|
12
13
|
<p>{formatPath(path)}</p>
|
|
13
14
|
</div>
|
|
14
|
-
{
|
|
15
|
+
{!hideTryItPanel && validateHttpMethod(method) && (<ScalarApiButton method={method} path={path} specUrl={specUrl}/>)}
|
|
15
16
|
</div>);
|
|
16
17
|
}
|
|
18
|
+
function validateHttpMethod(method) {
|
|
19
|
+
return ['get', 'post', 'put', 'delete', 'patch', 'head', 'options', 'trace'].includes(method);
|
|
20
|
+
}
|
|
17
21
|
// Format the path to highlight placeholders
|
|
18
22
|
function formatPath(path) {
|
|
19
23
|
// Matches placeholders like {id}, {userId}, etc.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { InteractiveSection } from './InteractiveSection';
|
|
2
1
|
import { OpenAPITabs, OpenAPITabsList, OpenAPITabsPanels } from './OpenAPITabs';
|
|
2
|
+
import { StaticSection } from './StaticSection';
|
|
3
3
|
import { generateSchemaExample } from './generateSchemaExample';
|
|
4
4
|
import { json2xml } from './json2xml';
|
|
5
5
|
import { stringifyOpenAPI } from './stringifyOpenAPI';
|
|
@@ -66,9 +66,9 @@ export function OpenAPIResponseExample(props) {
|
|
|
66
66
|
return null;
|
|
67
67
|
}
|
|
68
68
|
return (<OpenAPITabs stateKey={createStateKey('response-example')} items={tabs}>
|
|
69
|
-
<
|
|
69
|
+
<StaticSection header={<OpenAPITabsList />} className="openapi-response-example">
|
|
70
70
|
<OpenAPITabsPanels />
|
|
71
|
-
</
|
|
71
|
+
</StaticSection>
|
|
72
72
|
</OpenAPITabs>);
|
|
73
73
|
}
|
|
74
74
|
function OpenAPIResponse(props) {
|
|
@@ -91,9 +91,9 @@ function OpenAPIResponse(props) {
|
|
|
91
91
|
};
|
|
92
92
|
});
|
|
93
93
|
return (<OpenAPITabs stateKey={createStateKey('response-media-types')} items={tabs}>
|
|
94
|
-
<
|
|
94
|
+
<StaticSection header={<OpenAPITabsList />} className="openapi-response-media-types">
|
|
95
95
|
<OpenAPITabsPanels />
|
|
96
|
-
</
|
|
96
|
+
</StaticSection>
|
|
97
97
|
</OpenAPITabs>);
|
|
98
98
|
}
|
|
99
99
|
function OpenAPIResponseMediaType(props) {
|
|
@@ -111,13 +111,13 @@ function OpenAPIResponseMediaType(props) {
|
|
|
111
111
|
return {
|
|
112
112
|
key: example.key,
|
|
113
113
|
label: example.example.summary || example.key,
|
|
114
|
-
body: (<OpenAPIExample example={
|
|
114
|
+
body: (<OpenAPIExample example={example.example} context={props.context} syntax={syntax}/>),
|
|
115
115
|
};
|
|
116
116
|
});
|
|
117
117
|
return (<OpenAPITabs stateKey={createStateKey('response-media-type-examples')} items={tabs}>
|
|
118
|
-
<
|
|
118
|
+
<StaticSection header={<OpenAPITabsList />} className="openapi-response-media-type-examples">
|
|
119
119
|
<OpenAPITabsPanels />
|
|
120
|
-
</
|
|
120
|
+
</StaticSection>
|
|
121
121
|
</OpenAPITabs>);
|
|
122
122
|
}
|
|
123
123
|
/**
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { InteractiveSection } from './InteractiveSection';
|
|
2
1
|
import { Markdown } from './Markdown';
|
|
3
2
|
import { OpenAPIDisclosureGroup } from './OpenAPIDisclosureGroup';
|
|
4
3
|
import { OpenAPIResponse } from './OpenAPIResponse';
|
|
4
|
+
import { StaticSection } from './StaticSection';
|
|
5
5
|
/**
|
|
6
6
|
* Display an interactive response body.
|
|
7
7
|
*/
|
|
8
8
|
export function OpenAPIResponses(props) {
|
|
9
9
|
var responses = props.responses, context = props.context;
|
|
10
|
-
return (<
|
|
10
|
+
return (<StaticSection header="Responses" className="openapi-responses">
|
|
11
11
|
<OpenAPIDisclosureGroup allowsMultipleExpanded icon={context.icons.chevronRight} groups={Object.entries(responses).map(function (_a) {
|
|
12
12
|
var _b;
|
|
13
13
|
var statusCode = _a[0], response = _a[1];
|
|
@@ -31,5 +31,5 @@ export function OpenAPIResponses(props) {
|
|
|
31
31
|
}),
|
|
32
32
|
};
|
|
33
33
|
})}/>
|
|
34
|
-
</
|
|
34
|
+
</StaticSection>);
|
|
35
35
|
}
|
package/dist/OpenAPISchema.d.ts
CHANGED
|
@@ -1,20 +1,11 @@
|
|
|
1
1
|
import type { OpenAPIV3 } from '@gitbook/openapi-parser';
|
|
2
2
|
import type { OpenAPIClientContext } from './types';
|
|
3
3
|
type CircularRefsIds = Map<OpenAPIV3.SchemaObject, string>;
|
|
4
|
-
|
|
4
|
+
interface OpenAPISchemaPropertyEntry {
|
|
5
5
|
propertyName?: string | undefined;
|
|
6
6
|
required?: boolean | undefined;
|
|
7
7
|
schema: OpenAPIV3.SchemaObject;
|
|
8
8
|
}
|
|
9
|
-
/**
|
|
10
|
-
* Render a property of an OpenAPI schema.
|
|
11
|
-
*/
|
|
12
|
-
export declare function OpenAPISchemaProperty(props: OpenAPISchemaPropertyEntry & {
|
|
13
|
-
/** Set of objects already observed as parents */
|
|
14
|
-
circularRefs?: CircularRefsIds;
|
|
15
|
-
context: OpenAPIClientContext;
|
|
16
|
-
className?: string;
|
|
17
|
-
}): import("react").JSX.Element;
|
|
18
9
|
/**
|
|
19
10
|
* Render a set of properties of an OpenAPI schema.
|
|
20
11
|
*/
|
|
@@ -23,7 +14,7 @@ export declare function OpenAPISchemaProperties(props: {
|
|
|
23
14
|
properties: OpenAPISchemaPropertyEntry[];
|
|
24
15
|
circularRefs?: CircularRefsIds;
|
|
25
16
|
context: OpenAPIClientContext;
|
|
26
|
-
}): import("react").JSX.Element
|
|
17
|
+
}): import("react").JSX.Element;
|
|
27
18
|
/**
|
|
28
19
|
* Render a root schema (such as the request body or response body).
|
|
29
20
|
*/
|
|
@@ -31,22 +22,8 @@ export declare function OpenAPIRootSchema(props: {
|
|
|
31
22
|
schema: OpenAPIV3.SchemaObject;
|
|
32
23
|
context: OpenAPIClientContext;
|
|
33
24
|
}): import("react").JSX.Element;
|
|
34
|
-
/**
|
|
35
|
-
* Render the enum value for a schema.
|
|
36
|
-
*/
|
|
37
|
-
export declare function OpenAPISchemaEnum(props: {
|
|
38
|
-
enumValues: any[];
|
|
39
|
-
}): import("react").JSX.Element;
|
|
40
|
-
export declare function OpenAPISchemaPresentation(props: OpenAPISchemaPropertyEntry): import("react").JSX.Element;
|
|
41
|
-
type OpenAPISchemaAlternatives = [
|
|
42
|
-
OpenAPIV3.SchemaObject[],
|
|
43
|
-
OpenAPIV3.DiscriminatorObject | undefined
|
|
44
|
-
];
|
|
45
25
|
/**
|
|
46
26
|
* Get the alternatives to display for a schema.
|
|
47
27
|
*/
|
|
48
|
-
export declare function getSchemaAlternatives(schema: OpenAPIV3.SchemaObject, ancestors?: Set<OpenAPIV3.SchemaObject>):
|
|
49
|
-
export declare function getSchemaTitle(schema: OpenAPIV3.SchemaObject,
|
|
50
|
-
/** If the title is inferred in a oneOf with discriminator, we can use it to optimize the title */
|
|
51
|
-
discriminator?: OpenAPIV3.DiscriminatorObject): string;
|
|
28
|
+
export declare function getSchemaAlternatives(schema: OpenAPIV3.SchemaObject, ancestors?: Set<OpenAPIV3.SchemaObject>): OpenAPIV3.SchemaObject[] | null;
|
|
52
29
|
export {};
|