Skip to content

Commit 41db9be

Browse files
authored
Enable strict tsconfig (#1228)
1 parent 80d95c5 commit 41db9be

File tree

13 files changed

+61
-41
lines changed

13 files changed

+61
-41
lines changed

.changeset/tall-garlics-raise.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"apollo-client-devtools": patch
3+
---
4+
5+
Enable strict tsconfig

src/application/App.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ export const App = () => {
129129
<BannerAlert />
130130
<Tabs
131131
value={selected}
132-
onChange={(screen: Screens) => currentScreen(screen)}
132+
onChange={(screen) => currentScreen(screen)}
133133
className="flex flex-col h-screen bg-primary dark:bg-primary-dark"
134134
>
135135
<Tabs.List className="flex items-center px-4">

src/application/components/Cache/Cache.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ export function Cache() {
102102
<JSONTreeViewer
103103
data={cache[cacheId]}
104104
hideRoot={true}
105-
valueRenderer={(valueAsString: ReactNode, value, key) => {
105+
valueRenderer={(valueAsString, value, key) => {
106106
return (
107107
<span
108108
className={clsx({
@@ -114,7 +114,7 @@ export function Cache() {
114114
}
115115
}}
116116
>
117-
{valueAsString}
117+
{valueAsString as ReactNode}
118118
</span>
119119
);
120120
}}

src/application/components/Explorer/Explorer.tsx

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,6 @@
11
import { useMemo } from "react";
22
import { useState, useEffect } from "react";
3-
import {
4-
Observable,
5-
useReactiveVar,
6-
FetchResult,
7-
NetworkStatus,
8-
} from "@apollo/client";
3+
import { Observable, useReactiveVar, NetworkStatus } from "@apollo/client";
94
import type { IntrospectionQuery } from "graphql";
105
import { getIntrospectionQuery } from "graphql/utilities";
116
import { colorTheme } from "../../theme";
@@ -56,7 +51,7 @@ function executeOperation({
5651
fetchPolicy: FetchPolicy;
5752
isSubscription?: boolean;
5853
}) {
59-
return new Observable<FetchResult>((observer) => {
54+
return new Observable<QueryResult>((observer) => {
6055
const payload = JSON.stringify({
6156
operation,
6257
operationName,
@@ -177,7 +172,7 @@ export const Explorer = ({
177172
fetchPolicy: FetchPolicy.NoCache,
178173
});
179174

180-
observer.subscribe((response: QueryResult) => {
175+
observer.subscribe((response) => {
181176
// If we have errors in the response it means we assume this was a graphql
182177
// response which means we did hit a graphql endpoint but introspection
183178
// was specifically disabled

src/application/components/Explorer/explorerRelay.ts

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -64,18 +64,26 @@ export const sendExplorerRequest = (operation: string): void => {
6464
export const receiveExplorerRequests = (
6565
callback: (event: CustomEvent<MessageObj<string>>) => void
6666
): (() => void) => {
67-
window.addEventListener(EXPLORER_REQUEST, callback);
67+
function handleEvent(event: Event) {
68+
callback(event as CustomEvent<MessageObj<string>>);
69+
}
70+
71+
window.addEventListener(EXPLORER_REQUEST, handleEvent);
6872
return () => {
69-
window.removeEventListener(EXPLORER_REQUEST, callback);
73+
window.removeEventListener(EXPLORER_REQUEST, handleEvent);
7074
};
7175
};
7276

7377
export const receiveSubscriptionTerminationRequest = (
7478
callback: (event: CustomEvent<MessageObj<undefined>>) => void
7579
): (() => void) => {
76-
window.addEventListener(EXPLORER_SUBSCRIPTION_TERMINATION, callback);
80+
function handleEvent(event: Event) {
81+
callback(event as CustomEvent<MessageObj<undefined>>);
82+
}
83+
84+
window.addEventListener(EXPLORER_SUBSCRIPTION_TERMINATION, handleEvent);
7785
return () => {
78-
window.removeEventListener(EXPLORER_SUBSCRIPTION_TERMINATION, callback);
86+
window.removeEventListener(EXPLORER_SUBSCRIPTION_TERMINATION, handleEvent);
7987
};
8088
};
8189

@@ -95,7 +103,8 @@ export const sendResponseToExplorer = ({
95103
};
96104

97105
export const receiveExplorerResponses = (): (() => void) => {
98-
const handleResponse = ({ detail }: CustomEvent<MessageObj>) => {
106+
const handleResponse = (event: Event) => {
107+
const { detail } = event as CustomEvent<MessageObj>;
99108
explorer.broadcast(detail);
100109
};
101110

src/application/components/Queries/Queries.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ export const Queries = ({ explorerIFrame }: QueriesProps) => {
8787
)}
8888
<QueryLayout.Tabs
8989
value={currentTab}
90-
onChange={(value: QueryTabs) => setCurrentTab(value)}
90+
onChange={(value) => setCurrentTab(value)}
9191
>
9292
<Tabs.List>
9393
<Tabs.Trigger value={QueryTabs.Variables}>Variables</Tabs.Trigger>

src/application/components/QueryLayout/Tabs.tsx

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,19 @@
11
import { ReactNode } from "react";
22
import { Tabs as TabsBase } from "../Tabs";
33

4-
interface TabsProps {
4+
interface TabsProps<TValue extends string> {
55
children: ReactNode;
6-
defaultValue?: string;
7-
value?: string;
8-
onChange?: (value: string) => void;
6+
defaultValue?: TValue;
7+
value?: TValue;
8+
onChange?: (value: TValue) => void;
99
}
1010

11-
export function Tabs({ children, defaultValue, value, onChange }: TabsProps) {
11+
export function Tabs<TValue extends string = string>({
12+
children,
13+
defaultValue,
14+
value,
15+
onChange,
16+
}: TabsProps<TValue>) {
1217
return (
1318
<TabsBase
1419
className="[grid-area:tabs] lg:overflow-hidden lg:-my-2"

src/application/components/Tabs/Tabs.tsx

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,27 +6,27 @@ import { Content } from "./Content";
66
import { List } from "./List";
77
import { Trigger } from "./Trigger";
88

9-
interface TabsProps {
9+
interface TabsProps<TValue extends string> {
1010
children: ReactNode;
1111
className?: string;
12-
defaultValue?: string;
13-
value?: string;
14-
onChange?: (value: string) => void;
12+
defaultValue?: TValue;
13+
value?: TValue;
14+
onChange?: (value: TValue) => void;
1515
}
1616

17-
export function Tabs({
17+
export function Tabs<TValue extends string = string>({
1818
children,
1919
className,
2020
defaultValue,
2121
value,
2222
onChange,
23-
}: TabsProps) {
23+
}: TabsProps<TValue>) {
2424
return (
2525
<Root
2626
className={clsx(className, "flex data-orientation-horizontal:flex-col")}
2727
defaultValue={defaultValue}
2828
value={value}
29-
onValueChange={onChange}
29+
onValueChange={(value) => onChange?.(value as TValue)}
3030
>
3131
{children}
3232
</Root>

src/application/stateMachine.ts

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import { SafeAny } from "../types";
2+
13
// eslint-disable-next-line @typescript-eslint/no-explicit-any
24
type NoInfer<T> = [T][T extends any ? 0 : never];
35

@@ -63,12 +65,8 @@ type Event<
6365
Context extends Record<string, unknown>,
6466
> = { type: EventName; context?: Partial<Context> };
6567

66-
export type GetStates<
67-
TMachine extends Machine<string, string, Record<string, unknown>>,
68-
> =
69-
TMachine extends Machine<infer State, string, Record<string, unknown>>
70-
? State
71-
: never;
68+
export type GetStates<TMachine> =
69+
TMachine extends Machine<infer State, SafeAny, SafeAny> ? State : never;
7270

7371
export function createMachine<
7472
State extends string,

src/extension/devtools/devtools.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ function sendMessageToClient(message: string) {
111111
}
112112

113113
function startRequestInterval(ms = 500) {
114-
let id: NodeJS.Timeout;
114+
let id: number;
115115

116116
if (devtoolsMachine.matches("connected")) {
117117
sendMessageToClient(REQUEST_DATA);

0 commit comments

Comments
 (0)