Fix ESLint warnings and and enable max warnings 0 to fail builds (#2101)

This commit is contained in:
Zane
2025-04-09 15:13:53 -07:00
committed by GitHub
parent 0daff53110
commit 8451fb1c89
69 changed files with 968 additions and 685 deletions
+110 -95
View File
@@ -1,4 +1,4 @@
import React, { createContext, useContext, useState, useEffect, useMemo } from 'react';
import React, { createContext, useContext, useState, useEffect, useMemo, useCallback } from 'react';
import {
readAllConfig,
readConfig,
@@ -70,6 +70,115 @@ export const ConfigProvider: React.FC<ConfigProviderProps> = ({ children }) => {
const [providersList, setProvidersList] = useState<ProviderDetails[]>([]);
const [extensionsList, setExtensionsList] = useState<FixedExtensionEntry[]>([]);
const reloadConfig = useCallback(async () => {
const response = await readAllConfig();
setConfig(response.data.config || {});
}, []);
const upsert = useCallback(
async (key: string, value: unknown, isSecret: boolean = false) => {
const query: UpsertConfigQuery = {
key: key,
value: value,
is_secret: isSecret,
};
await upsertConfig({
body: query,
});
await reloadConfig();
},
[reloadConfig]
);
const read = useCallback(async (key: string, is_secret: boolean = false) => {
const query: ConfigKeyQuery = { key: key, is_secret: is_secret };
const response = await readConfig({
body: query,
});
return response.data;
}, []);
const remove = useCallback(
async (key: string, is_secret: boolean) => {
const query: ConfigKeyQuery = { key: key, is_secret: is_secret };
await removeConfig({
body: query,
});
await reloadConfig();
},
[reloadConfig]
);
const addExtension = useCallback(
async (name: string, config: ExtensionConfig, enabled: boolean) => {
// remove shims if present
if (config.type === 'stdio') {
config.cmd = removeShims(config.cmd);
}
const query: ExtensionQuery = { name, config, enabled };
await apiAddExtension({
body: query,
});
await reloadConfig();
},
[reloadConfig]
);
const removeExtension = useCallback(
async (name: string) => {
await apiRemoveExtension({ path: { name: name } });
await reloadConfig();
},
[reloadConfig]
);
const getExtensions = useCallback(
async (forceRefresh = false): Promise<FixedExtensionEntry[]> => {
if (forceRefresh || extensionsList.length === 0) {
const result = await apiGetExtensions();
if (result.response.status === 422) {
throw new MalformedConfigError();
}
if (result.error && !result.data) {
console.log(result.error);
return extensionsList;
}
const extensionResponse: ExtensionResponse = result.data;
setExtensionsList(extensionResponse.extensions);
return extensionResponse.extensions;
}
return extensionsList;
},
[extensionsList]
);
const toggleExtension = useCallback(
async (name: string) => {
const exts = await getExtensions(true);
const extension = exts.find((ext) => ext.name === name);
if (extension) {
await addExtension(name, extension, !extension.enabled);
}
},
[addExtension, getExtensions]
);
const getProviders = useCallback(
async (forceRefresh = false): Promise<ProviderDetails[]> => {
if (forceRefresh || providersList.length === 0) {
const response = await providers();
setProvidersList(response.data);
return response.data;
}
return providersList;
},
[providersList]
);
useEffect(() => {
// Load all configuration data and providers on mount
(async () => {
@@ -95,100 +204,6 @@ export const ConfigProvider: React.FC<ConfigProviderProps> = ({ children }) => {
})();
}, []);
const reloadConfig = async () => {
const response = await readAllConfig();
setConfig(response.data.config || {});
};
const upsert = async (key: string, value: unknown, isSecret: boolean = false) => {
const query: UpsertConfigQuery = {
key: key,
value: value,
is_secret: isSecret,
};
await upsertConfig({
body: query,
});
await reloadConfig();
};
const read = async (key: string, is_secret: boolean = false) => {
const query: ConfigKeyQuery = { key: key, is_secret: is_secret };
const response = await readConfig({
body: query,
});
return response.data;
};
const remove = async (key: string, is_secret: boolean) => {
const query: ConfigKeyQuery = { key: key, is_secret: is_secret };
await removeConfig({
body: query,
});
await reloadConfig();
};
const addExtension = async (name: string, config: ExtensionConfig, enabled: boolean) => {
// remove shims if present
if (config.type == 'stdio') {
config.cmd = removeShims(config.cmd);
}
const query: ExtensionQuery = { name, config, enabled };
await apiAddExtension({
body: query,
});
await reloadConfig();
};
const removeExtension = async (name: string) => {
await apiRemoveExtension({ path: { name: name } });
await reloadConfig();
};
const toggleExtension = async (name: string) => {
// Get current extensions to find the one we need to toggle
const exts = await getExtensions(true);
const extension = exts.find((ext) => ext.name === name);
if (extension) {
// Toggle the enabled state and update using addExtension
await addExtension(name, extension, !extension.enabled);
}
};
const getProviders = async (forceRefresh = false): Promise<ProviderDetails[]> => {
if (forceRefresh || providersList.length === 0) {
// If a refresh is forced or we don't have providers yet
const response = await providers();
setProvidersList(response.data);
return response.data;
}
// Otherwise return the cached providers
return providersList;
};
const getExtensions = async (forceRefresh = false): Promise<FixedExtensionEntry[]> => {
// If a refresh is forced, or we don't have providers yet
if (forceRefresh || extensionsList.length === 0) {
const result = await apiGetExtensions();
if (result.response.status === 422) {
throw new MalformedConfigError();
}
if (result.error && !result.data) {
console.log(result.error);
return;
}
const extensionResponse: ExtensionResponse = result.data;
setExtensionsList(extensionResponse.extensions);
return extensionResponse.extensions;
}
// Otherwise return the cached providers
return extensionsList;
};
const contextValue = useMemo(
() => ({
config,