From 2951023ee8a0b1dc57048a0698480e1386ac4f0d Mon Sep 17 00:00:00 2001 From: Gregory Schier Date: Mon, 16 Sep 2024 08:36:02 -0700 Subject: [PATCH] Fix all lint errors --- .eslintrc.cjs | 1 + package-lock.json | 2 +- package.json | 2 +- plugin-runtime/package.json | 2 +- src-web/components/ExportDataDialog.tsx | 1 + src-web/components/GraphQLEditor.tsx | 3 ++ src-web/components/GrpcEditor.tsx | 28 ++++++++++--------- src-web/components/ImportCurlButton.tsx | 2 +- .../components/Settings/SettingsPlugins.tsx | 1 - src-web/components/Sidebar.tsx | 9 +++--- src-web/components/UrlBar.tsx | 3 +- .../components/responseViewers/JsonViewer.tsx | 3 +- src-web/hooks/useGrpc.ts | 3 +- src-web/hooks/useKeyValue.ts | 3 +- src-web/lib/contentType.ts | 3 +- src-web/lib/formatters.ts | 6 ++-- src-web/lib/keyValueStore.ts | 1 + src-web/lib/responseBody.ts | 3 +- tsconfig.json | 1 - 19 files changed, 43 insertions(+), 34 deletions(-) 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