@hyper-fetch/core
Version:
Cache, Queue and Persist your requests no matter if you are online or offline!
40 lines (31 loc) • 1.16 kB
text/typescript
import { sleep } from "@hyper-fetch/testing";
import type { RequestInstance } from "request";
import { Adapter } from "adapter";
import type { HttpAdapterType } from "http-adapter";
import { HttpAdapter } from "http-adapter";
import { LoggerManager } from "managers";
export const createAdapter = (props?: {
sleepTime?: number;
callback: (request: RequestInstance, requestId: string) => void;
}): HttpAdapterType => {
const { sleepTime, callback } = props || {};
const httpAdapter = HttpAdapter();
const adapter = new Adapter({
name: "test",
defaultMethod: "GET",
defaultExtra: {},
systemErrorStatus: 0,
systemErrorExtra: {},
});
adapter.logger = new LoggerManager().initialize({ debug: false }, "Adapter");
httpAdapter.logger = new LoggerManager().initialize({ debug: false }, "Adapter");
adapter.unstable_fetcher = httpAdapter.unstable_fetcher as any;
adapter.fetch = async (request, requestId) => {
if (sleepTime) {
await sleep(sleepTime);
}
callback?.(request, requestId);
return httpAdapter.fetch(request as any, requestId);
};
return httpAdapter as unknown as HttpAdapterType;
};