Skip to content

Commit 8a19681

Browse files
committed
feat: Keep trying to make fetch happen
https://harperdb.atlassian.net/browse/STUDIO-344
1 parent 72b16e7 commit 8a19681

File tree

3 files changed

+26
-29
lines changed

3 files changed

+26
-29
lines changed

src/features/instance/InstanceNavBar.tsx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,16 +32,16 @@ export function InstanceNavBar() {
3232
shortName: 'Apps',
3333
icon: <PackageIcon className="inline-block" />,
3434
},
35-
canManage && {
36-
to: buildAbsoluteLinkToPage(params, 'apis'),
37-
name: 'APIs',
38-
icon: <ServerIcon className="inline-block" />,
39-
},
4035
{
4136
to: buildAbsoluteLinkToPage(params, 'databases'),
4237
icon: <DatabaseIcon className="inline-block" />,
4338
name: 'Databases',
4439
},
40+
canManage && {
41+
to: buildAbsoluteLinkToPage(params, 'apis'),
42+
name: 'APIs',
43+
icon: <ServerIcon className="inline-block" />,
44+
},
4545
canManage && {
4646
to: buildAbsoluteLinkToPage(params, 'status'),
4747
icon: <GaugeIcon className="inline-block" />,

src/features/instance/apis/plugins.ts

Lines changed: 19 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,26 @@
11
export const SnippedGeneratorNodeJsPlugin = {
22
fn: {
3-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
4-
requestSnippetGenerator_node_fetch: (request: any) => {
5-
const url = new URL(request.get('url'));
3+
requestSnippetGenerator_fetch: (request: { get: (key: string) => unknown }) => {
4+
const url = new URL(request.get('url') as string);
65
let isMultipartFormDataRequest = false;
7-
const headers = request.get('headers');
6+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
7+
const headers = request.get('headers') as any;
88
if (headers && headers.size) {
9-
request.get('headers').map((val: string, key: string) => {
9+
headers.map((val: string, key: string) => {
1010
isMultipartFormDataRequest = isMultipartFormDataRequest || /^content-type$/i.test(key) && /^multipart\/form-data$/i.test(val);
1111
});
1212
}
13-
let reqBody = request.get('body');
14-
if (request.get('body')) {
15-
if (isMultipartFormDataRequest && ['POST', 'PUT', 'PATCH'].includes(request.get('method'))) {
13+
let reqBody = request.get('body') as string | object;
14+
const reqMethod = request.get('method') as string;
15+
if (reqBody) {
16+
if (isMultipartFormDataRequest && ['POST', 'PUT', 'PATCH'].includes(reqMethod)) {
1617
return 'throw new Error("Currently unsupported content-type: /^multipart\\/form-data$/i");';
1718
} else {
1819
if (typeof reqBody !== 'string') {
1920
reqBody = JSON.stringify(reqBody, null, '\t');
2021
}
2122
}
22-
} else if (!request.get('body') && request.get('method') === 'POST') {
23+
} else if (!reqBody && reqMethod === 'POST') {
2324
reqBody = '';
2425
}
2526

@@ -28,19 +29,15 @@ export const SnippedGeneratorNodeJsPlugin = {
2829
.replace(/`/g, '\\`')
2930
+ '`';
3031

31-
return `async function main() {
32-
\tconst response = await fetch("${url.toString()}", {
33-
\t\tmethod: "${request.get('method')}",${headers && headers.size ? `
34-
\t\theaders: {
35-
\t\t\t${request.get('headers').map((val: string, key: string) => `"${key}": "${val}"`).valueSeq().join(',\n\t\t\t')}
36-
\t\t},` : ''}${reqBody ? `
37-
\t\tbody: JSON.stringify(${stringBody}),` : ''}
38-
\t});
39-
\tconst data = await response.json();
40-
\tconsole.log(data);
41-
}
42-
43-
main().catch(console.error);
32+
return `const response = await fetch("${url.toString()}", {
33+
\tmethod: "${request.get('method')}",${headers && headers.size ? `
34+
\theaders: {
35+
\t\t${headers.map((val: string, key: string) => `"${key}": "${val}"`).valueSeq().join(',\n\t\t')}
36+
\t},` : ''}${reqBody ? `
37+
\tbody: JSON.stringify(${stringBody}),` : ''}
38+
});
39+
const data = await response.json();
40+
console.log(data);
4441
`;
4542
},
4643
},

src/features/instance/apis/requestSnippets.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
export const requestSnippets = {
22
generators: {
3-
node_fetch: {
4-
title: 'Node.js Fetch',
3+
fetch: {
4+
title: 'Fetch',
55
syntax: 'javascript',
66
},
77
},

0 commit comments

Comments
 (0)