UNPKG

@hyper-fetch/core

Version:

Cache, Queue and Persist your requests no matter if you are online or offline!

43 lines (34 loc) 1.08 kB
import { RequestInstance } from "request"; import { ExtractErrorType } from "types"; // Utils export const getErrorMessage = (errorCase?: "timeout" | "abort" | "deleted") => { if (errorCase === "timeout") { return new Error("Request timeout"); } if (errorCase === "abort") { return new Error("Request cancelled"); } return new Error("Unexpected error"); }; export const getResponseHeaders = (headersString: string): Record<string, string> => { const arr = headersString.trim().split(/[\r\n]+/); const headers = {}; arr.forEach((line) => { const parts = line.split(": "); const header = parts.shift(); const value = parts.join(": "); headers[header] = value; }); return headers; }; // Responses export const parseResponse = (response: string | unknown) => { try { return JSON.parse(response as string); } catch (err) { return response; } }; export const parseErrorResponse = <T extends RequestInstance>(response: unknown): ExtractErrorType<T> => { return response ? parseResponse(response) : getErrorMessage(); };