return-fetch-json
Version:
An extended function of return-fetch ot serialize request body and deserialize response body as object.
15 lines (14 loc) • 735 B
TypeScript
import { FetchArgs, ReturnFetchDefaultOptions } from "return-fetch";
export type ReturnFetchJson = typeof returnFetchJson;
export type ReturnFetchJsonDefaultOptions = ReturnFetchDefaultOptions & {
jsonParser?: typeof JSON.parse;
};
export type JsonRequestInit = Omit<NonNullable<FetchArgs[1]>, "body"> & {
body?: object;
};
export type ResponseGenericBody<T> = Omit<Awaited<ReturnType<typeof fetch>>, keyof Body | "clone"> & {
body: T;
};
export type JsonResponse<T> = T extends object ? ResponseGenericBody<T> : ResponseGenericBody<string>;
declare const returnFetchJson: (args?: ReturnFetchJsonDefaultOptions) => <T>(url: FetchArgs[0], init?: JsonRequestInit) => Promise<JsonResponse<T>>;
export default returnFetchJson;