diff --git a/.eslintrc.cjs b/.eslintrc.cjs
index f0b4a0e4..12480a00 100644
--- a/.eslintrc.cjs
+++ b/.eslintrc.cjs
@@ -19,6 +19,7 @@ module.exports = {
'src-tauri/**/*',
'plugins/**/*',
'tailwind.config.cjs',
+ 'vite.config.ts',
],
settings: {
react: {
diff --git a/package-lock.json b/package-lock.json
index 3c0257ea..6c24ef53 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -89,7 +89,7 @@
"react-devtools": "^5.3.1",
"rimraf": "^6.0.1",
"tailwindcss": "^3.4.10",
- "typescript": "^5.6.2",
+ "typescript": "^5.6.0",
"vite": "^5.4.4",
"vite-plugin-static-copy": "^1.0.6",
"vite-plugin-svgr": "^4.2.0",
diff --git a/package.json b/package.json
index 5e1cfc5e..c6e9300f 100644
--- a/package.json
+++ b/package.json
@@ -108,7 +108,7 @@
"react-devtools": "^5.3.1",
"rimraf": "^6.0.1",
"tailwindcss": "^3.4.10",
- "typescript": "^5.6.2",
+ "typescript": "^5.6.0",
"vite": "^5.4.4",
"vite-plugin-static-copy": "^1.0.6",
"vite-plugin-svgr": "^4.2.0",
diff --git a/plugin-runtime/package.json b/plugin-runtime/package.json
index 9409701f..d4a75b12 100644
--- a/plugin-runtime/package.json
+++ b/plugin-runtime/package.json
@@ -20,6 +20,6 @@
"npm-run-all": "^4.1.5",
"ts-node": "^10.9.2",
"ts-proto": "^2.2.0",
- "typescript": "^5.6.2"
+ "typescript": "^5.6.0"
}
}
diff --git a/src-web/components/ExportDataDialog.tsx b/src-web/components/ExportDataDialog.tsx
index 03ea6aad..fc2f078d 100644
--- a/src-web/components/ExportDataDialog.tsx
+++ b/src-web/components/ExportDataDialog.tsx
@@ -89,6 +89,7 @@ export function ExportDataDialog({
}
/>
+ {/* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions,jsx-a11y/click-events-have-key-events */}
setSelectedWorkspaces((prev) => ({ ...prev, [w.id]: !prev[w.id] }))}
diff --git a/src-web/components/GraphQLEditor.tsx b/src-web/components/GraphQLEditor.tsx
index 6c0a725b..0153d4f8 100644
--- a/src-web/components/GraphQLEditor.tsx
+++ b/src-web/components/GraphQLEditor.tsx
@@ -37,6 +37,7 @@ export function GraphQLEditor({ defaultValue, onChange, baseRequest, ...extraEdi
const variables = p.variables;
const operationName = p.operationName;
return { query, variables, operationName };
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
} catch (err) {
return { query: '' };
}
@@ -46,6 +47,7 @@ export function GraphQLEditor({ defaultValue, onChange, baseRequest, ...extraEdi
(b: GraphQLBody) => {
try {
onChange?.(JSON.stringify(b, null, 2));
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
} catch (err) {
// Meh, not much we can do here
}
@@ -62,6 +64,7 @@ export function GraphQLEditor({ defaultValue, onChange, baseRequest, ...extraEdi
(variables: string) => {
try {
handleChange({ query, variables: JSON.parse(variables || '{}') });
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
} catch (err) {
// Don't do anything if invalid JSON. The user probably hasn't finished
// typing yet.
diff --git a/src-web/components/GrpcEditor.tsx b/src-web/components/GrpcEditor.tsx
index e8d05227..1e5412a2 100644
--- a/src-web/components/GrpcEditor.tsx
+++ b/src-web/components/GrpcEditor.tsx
@@ -6,8 +6,10 @@ import {
handleRefresh,
jsonCompletion,
jsonSchemaLinter,
- updateSchema,
+ // eslint-disable-next-line import/named
stateExtensions,
+ // eslint-disable-next-line import/named
+ updateSchema,
} from 'codemirror-json-schema';
import { useEffect, useMemo, useRef } from 'react';
import { useAlert } from '../hooks/useAlert';
@@ -136,10 +138,10 @@ export function GrpcEditor({
reflectionLoading
? 'secondary'
: reflectionUnavailable
- ? 'info'
- : reflectionError
- ? 'danger'
- : 'secondary'
+ ? 'info'
+ : reflectionError
+ ? 'danger'
+ : 'secondary'
}
isLoading={reflectionLoading}
onClick={() => {
@@ -160,14 +162,14 @@ export function GrpcEditor({
{reflectionLoading
? 'Inspecting Schema'
: reflectionUnavailable
- ? 'Select Proto Files'
- : reflectionError
- ? 'Server Error'
- : protoFiles.length > 0
- ? count('File', protoFiles.length)
- : services != null && protoFiles.length === 0
- ? 'Schema Detected'
- : 'Select Schema'}
+ ? 'Select Proto Files'
+ : reflectionError
+ ? 'Server Error'
+ : protoFiles.length > 0
+ ? count('File', protoFiles.length)
+ : services != null && protoFiles.length === 0
+ ? 'Schema Detected'
+ : 'Select Schema'}
,
],
diff --git a/src-web/components/ImportCurlButton.tsx b/src-web/components/ImportCurlButton.tsx
index 0b6cd012..8d37dad7 100644
--- a/src-web/components/ImportCurlButton.tsx
+++ b/src-web/components/ImportCurlButton.tsx
@@ -40,7 +40,7 @@ export function ImportCurlButton() {
await clear(); // Clear the clipboard so the button goes away
setClipboardText('');
} catch (e) {
- // Nothing
+ console.log('Failed to import curl', e);
} finally {
setIsLoading(false);
}
diff --git a/src-web/components/Settings/SettingsPlugins.tsx b/src-web/components/Settings/SettingsPlugins.tsx
index a1921839..624314cb 100644
--- a/src-web/components/Settings/SettingsPlugins.tsx
+++ b/src-web/components/Settings/SettingsPlugins.tsx
@@ -88,7 +88,6 @@ export function SettingsPlugins() {
function PluginInfo({ plugin }: { plugin: Plugin }) {
const pluginInfo = usePluginInfo(plugin.id);
- if (pluginInfo.data == null) return null;
return (
|
|
diff --git a/src-web/components/Sidebar.tsx b/src-web/components/Sidebar.tsx
index a4df33ad..f585a256 100644
--- a/src-web/components/Sidebar.tsx
+++ b/src-web/components/Sidebar.tsx
@@ -243,7 +243,7 @@ export function Sidebar({ className }: Props) {
await setHidden(false);
}
- // Select 0 index on focus if none selected
+ // Select 0th index on focus if none selected
focusActiveRequest(
selectedTree != null && selectedId != null
? { forced: { id: selectedId, tree: selectedTree } }
@@ -310,7 +310,7 @@ export function Sidebar({ className }: Props) {
let hoveredIndex = dragIndex + (side === 'above' ? 0 : 1);
if (hoveredItem?.model === 'folder' && side === 'below' && !isCollapsed(hoveredItem.id)) {
- // Move into folder if it's open and we're moving below it
+ // Move into the folder if it's open and we're moving below it
hoveredTree = hoveredTree?.children.find((n) => n.item.id === id) ?? null;
hoveredIndex = 0;
}
@@ -814,11 +814,10 @@ function SidebarItem({
hotKeyAction: 'http_request.duplicate',
hotKeyLabelOnly: true, // Would trigger for every request (bad)
leftSlot: ,
- onSelect: () => {
+ onSelect: () =>
itemModel === 'http_request'
? duplicateHttpRequest.mutate()
- : duplicateGrpcRequest.mutate();
- },
+ : duplicateGrpcRequest.mutate(),
},
{
key: 'moveWorkspace',
diff --git a/src-web/components/UrlBar.tsx b/src-web/components/UrlBar.tsx
index 8ddb9739..699896fc 100644
--- a/src-web/components/UrlBar.tsx
+++ b/src-web/components/UrlBar.tsx
@@ -55,7 +55,8 @@ export const UrlBar = memo(function UrlBar({
const handleSubmit = (e: FormEvent) => {
e.preventDefault();
- isLoading ? onCancel() : onSend();
+ if (isLoading) onCancel();
+ else onSend();
};
return (
diff --git a/src-web/components/responseViewers/JsonViewer.tsx b/src-web/components/responseViewers/JsonViewer.tsx
index 7f33f681..a8ab0687 100644
--- a/src-web/components/responseViewers/JsonViewer.tsx
+++ b/src-web/components/responseViewers/JsonViewer.tsx
@@ -16,7 +16,8 @@ export function JsonViewer({ response, className }: Props) {
let parsed = {};
try {
parsed = JSON.parse(rawBody.data);
- } catch (e) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ } catch (err) {
// Nothing yet
}
diff --git a/src-web/hooks/useGrpc.ts b/src-web/hooks/useGrpc.ts
index d72f480e..2c107278 100644
--- a/src-web/hooks/useGrpc.ts
+++ b/src-web/hooks/useGrpc.ts
@@ -47,11 +47,10 @@ export function useGrpc(
});
const debouncedUrl = useDebouncedValue(req?.url ?? '', 1000);
- const debouncedMessage = useDebouncedValue(req?.message ?? '', 1000);
const reflect = useQuery({
enabled: req != null,
- queryKey: ['grpc_reflect', req?.id ?? 'n/a', debouncedUrl, debouncedMessage, protoFiles],
+ queryKey: ['grpc_reflect', req?.id ?? 'n/a', debouncedUrl, protoFiles],
queryFn: async () =>
(await minPromiseMillis(
invokeCmd('cmd_grpc_reflect', { requestId, protoFiles }),
diff --git a/src-web/hooks/useKeyValue.ts b/src-web/hooks/useKeyValue.ts
index e2a8f818..0a1d6c31 100644
--- a/src-web/hooks/useKeyValue.ts
+++ b/src-web/hooks/useKeyValue.ts
@@ -14,8 +14,7 @@ export function keyValueQueryKey({
return ['key_value', { namespace, key: buildKeyValueKey(key) }];
}
-// eslint-disable-next-line @typescript-eslint/ban-types
-export function useKeyValue({
+export function useKeyValue({
namespace = DEFAULT_NAMESPACE,
key,
fallback,
diff --git a/src-web/lib/contentType.ts b/src-web/lib/contentType.ts
index 4329160f..73885d70 100644
--- a/src-web/lib/contentType.ts
+++ b/src-web/lib/contentType.ts
@@ -19,7 +19,8 @@ export function isJSON(text: string): boolean {
try {
JSON.parse(text);
return true;
- } catch (_) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ } catch (err) {
return false;
}
}
diff --git a/src-web/lib/formatters.ts b/src-web/lib/formatters.ts
index 245e89d3..3b0537bd 100644
--- a/src-web/lib/formatters.ts
+++ b/src-web/lib/formatters.ts
@@ -8,7 +8,8 @@ export function tryFormatJson(text: string, pretty = true): string {
try {
if (pretty) return JSON.stringify(JSON.parse(text), null, INDENT);
else return JSON.stringify(JSON.parse(text));
- } catch (_) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ } catch (err) {
return text;
}
}
@@ -18,7 +19,8 @@ export function tryFormatXml(text: string): string {
try {
return xmlFormat(text, { throwOnFailure: true, strictMode: false, indentation: INDENT });
- } catch (_) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ } catch (err) {
return text;
}
}
diff --git a/src-web/lib/keyValueStore.ts b/src-web/lib/keyValueStore.ts
index dd12121f..48c89804 100644
--- a/src-web/lib/keyValueStore.ts
+++ b/src-web/lib/keyValueStore.ts
@@ -49,6 +49,7 @@ export function extractKeyValue(kv: KeyValue | null): T | undefined {
try {
return JSON.parse(kv.value) as T;
} catch (err) {
+ console.log('Failed to parse kv value', kv.value, err);
return undefined;
}
}
diff --git a/src-web/lib/responseBody.ts b/src-web/lib/responseBody.ts
index 2f12f723..52267e7d 100644
--- a/src-web/lib/responseBody.ts
+++ b/src-web/lib/responseBody.ts
@@ -9,7 +9,8 @@ export async function getResponseBodyText(response: HttpResponse): Promise |