openclaw/src/test-utils/fetch-mock.ts

23 lines
677 B
TypeScript

export type FetchMock = (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>;
type FetchPreconnectOptions = {
dns?: boolean;
tcp?: boolean;
http?: boolean;
https?: boolean;
};
type FetchWithPreconnect = {
preconnect: (url: string | URL, options?: FetchPreconnectOptions) => void;
};
export function withFetchPreconnect<T extends typeof fetch>(fn: T): T & FetchWithPreconnect;
export function withFetchPreconnect<T extends object>(
fn: T,
): T & FetchWithPreconnect & typeof fetch;
export function withFetchPreconnect(fn: object) {
return Object.assign(fn, {
preconnect: (_url: string | URL, _options?: FetchPreconnectOptions) => {},
});
}