Skip to content

Commit 164d8d4

Browse files
committed
try with xhr
1 parent f6ce47b commit 164d8d4

File tree

3 files changed

+27
-56070
lines changed

3 files changed

+27
-56070
lines changed

src/build/shared.ts

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,22 @@ export const resolveRemoteApiSpec = async (): Promise<DeRefedOpenAPI> => {
99
);
1010
return response.json() as Promise<DeRefedOpenAPI>;
1111
};
12+
13+
export const resolveSpecWithXHR = new Promise<DeRefedOpenAPI>((resolve, reject) => {
14+
const xhr = new XMLHttpRequest();
15+
xhr.onreadystatechange = () => {
16+
if (xhr.readyState === XMLHttpRequest.DONE) {
17+
return resolve(JSON.parse(xhr.responseText) as DeRefedOpenAPI);
18+
}
19+
if (xhr.readyState === XMLHttpRequest.UNSENT) {
20+
return reject('Failed to fetch schema');
21+
}
22+
return undefined;
23+
};
24+
xhr.open(
25+
'GET',
26+
`https://raw.githubusercontent.com/getsentry/sentry-api-schema/${SENTRY_API_SCHEMA_SHA}/openapi-derefed.json`,
27+
true
28+
);
29+
xhr.send(null);
30+
});

src/components/api-docs/apiDocs.tsx

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,11 @@ import {Fragment, useEffect, useState} from 'react';
66
import {LoadingArticle} from 'apps/changelog/src/client/components/article';
77
import {OpenAPIV3_1} from 'openapi-types';
88
import {API, APICategory} from 'src/build/resolveOpenAPI';
9+
// import {resolveRemoteApiSpec} from 'src/build/shared';
910
import SwaggerUI, {SwaggerUIProps} from 'swagger-ui-react';
1011

11-
import {LOCAL_API_SPEC} from './localApiSpec';
12+
import {resolveRemoteApiSpec} from 'sentry-docs/build/shared';
13+
1214
import {HTTPSnippetGenerators} from './plugins';
1315
import {getSnippetConfig} from './settings';
1416

@@ -77,10 +79,12 @@ export function ApiDocs({api}: Props) {
7779
const [apiSpec, setApiSpec] = useState<OpenApiSpec | null>(null);
7880

7981
useEffect(() => {
80-
const fetchApiSpec = () => {
82+
const fetchApiSpec = async () => {
8183
// this is temporary, for demo purposed
82-
const spec = LOCAL_API_SPEC as any as OpenApiSpec;
83-
// const spec = (await resolveRemoteApiSpec()) as any as OpenApiSpec;
84+
const spec = (await resolveRemoteApiSpec()) as any as OpenApiSpec;
85+
86+
// eslint-disable-next-line no-console
87+
console.log('resolving spec', spec);
8488
setApiSpec(spec);
8589
};
8690

0 commit comments

Comments
 (0)