[skip ci] refactor: proxy -> middleware

This commit is contained in:
nyagami
2024-11-30 00:35:45 +07:00
parent 195a913998
commit f352783ee1
8 changed files with 274 additions and 851 deletions
+6 -5
View File
@@ -11,12 +11,13 @@ import {
} from '@mui/material';
import Checkbox from '@mui/material/Checkbox';
import useDebounce from '@hooks/useDebounce';
import { FetchMode } from '@typings/types';
export default function HeadersSection() {
const [loading, setLoading] = useState(false);
const [cookies, setCookies] = useState('');
const debounceCookies = useDebounce(cookies, 500);
const [fetchMode, setFetchMode] = useState('proxy');
const [fetchMode, setFetchMode] = useState(FetchMode.PROXY);
const [alertVisible, setAlertVisble] = useState(false);
const [useUserAgent, setUseUserAgent] = useState(true);
useEffect(() => {
@@ -109,11 +110,11 @@ export default function HeadersSection() {
variant="outlined"
label="Fetcher"
value={fetchMode}
onChange={e => setFetchMode(e.target.value)}
onChange={e => setFetchMode(e.target.value as FetchMode)}
>
<MenuItem value="proxy">Proxy</MenuItem>
<MenuItem value="node-fetch">Node fetch</MenuItem>
<MenuItem value="curl">Curl</MenuItem>
<MenuItem value={FetchMode.PROXY}>Proxy</MenuItem>
<MenuItem value={FetchMode.NODE_FETCH}>Node fetch</MenuItem>
<MenuItem value={FetchMode.CURL}>Curl</MenuItem>
</Select>
</div>
</AccordionContainer>
+1 -1
View File
@@ -16,7 +16,7 @@ window.fetch = async (...args) => {
const [resource, config] = args;
if (resource.toString().includes('localhost'))
return await originalFetch(resource, config);
const _res = await originalFetch('http://localhost:3001/' + resource, {
const _res = await originalFetch('http://localhost:3000/' + resource, {
...config,
credentials: 'include',
mode: 'cors',
+15
View File
@@ -1,3 +1,18 @@
import { Plugin } from '@typings/plugin';
export type PluginList = Record<string, Plugin.PluginItem[]>;
export enum FetchMode {
PROXY,
NODE_FETCH,
CURL,
}
export interface ServerSetting {
CLIENT_HOST: string;
fetchMode: FetchMode;
cookies?: string;
disAllowedRequestHeaders: string[];
disAllowResponseHeaders: string[];
useUserAgent: boolean;
}