Don't introspect schema on interval

This commit is contained in:
Gregory Schier
2024-09-06 10:37:10 -07:00
parent d032495861
commit e4e888c47a

View File

@@ -1,6 +1,6 @@
import type { HttpRequest } from '@yaakapp/api';
import type { IntrospectionQuery } from 'graphql';
import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
import { useCallback, useEffect, useMemo, useState } from 'react';
import { buildClientSchema, getIntrospectionQuery } from '../components/core/Editor';
import { minPromiseMillis } from '../lib/minPromiseMillis';
import { getResponseBodyText } from '../lib/responseBody';
@@ -29,8 +29,6 @@ export function useIntrospectGraphQL(baseRequest: HttpRequest) {
namespace: 'global',
});
const introspectionInterval = useRef<NodeJS.Timeout>();
useEffect(() => {
const fetchIntrospection = async () => {
setIsLoading(true);
@@ -63,16 +61,9 @@ export function useIntrospectGraphQL(baseRequest: HttpRequest) {
await setIntrospection(data);
};
const runIntrospection = () => {
fetchIntrospection()
.catch((e) => setError(e.message))
.finally(() => setIsLoading(false));
};
// Do it again on an interval
clearInterval(introspectionInterval.current);
introspectionInterval.current = setInterval(runIntrospection, 1000 * 60);
runIntrospection(); // Run immediately
fetchIntrospection()
.catch((e) => setError(e.message))
.finally(() => setIsLoading(false));
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [request.id, request.url, request.method, refetchKey, activeEnvironment?.id]);